Я пытаюсь сделать сетку, содержащую карты мегарегионов в США. Я создаю SpatialPolygonDataframe из файла формы. затем преобразуйте его в data.frame, чтобы использовать ggplot2. как только я добавляю данные во фрейм, полигон строится. файл, содержащий SpatialPolygon и фрейм данных, находятся здесь: https://drive.google.com/open?id=1kGPZ3CENJbHva0s558vWU24-erbqWUGo код выглядит следующим образом:
load("./data.rda")
prop.test <- proptest.result[which(proptest.result$variable=="Upward N"),]
#transforming the data
# add to data a new column termed "id" composed of the rownames of data
shape@data$id <- rownames(shape@data)
#add data to our
shape@data <- data.frame(merge(x = shape@data, y = prop.test, by.x='Name', by.y="megaregion"))
# create a data.frame from our spatial object
mega.prop <- fortify(shape)
#merge the "fortified" data with the data from our spatial object
mega.prop.test <- merge(mega.prop, shape@data, by="id")
Построение первого (mega.prop) отлично работает:
ggplot(data = mega.prop, aes(x=long, y=lat, group=group), fill="blue")+
geom_polygon()
но построение графика после добавления данных аналитики:
ggplot(data = mega.prop.test, aes(x=long, y=lat, group=group), fill="blue")+
geom_polygon()
В новом сюжете:
- Неправильно заполнение полигонов. (Это о порядке начисления очков? Как?)
- два полигона полностью пропущены.
В чем проблема? Большое спасибо за Вашу помощь.
merge
нарушает порядок точек. Вместо этого используйтеdata.table::merge
илиdplyr::left_join
. (Или сначала добавьте столбец заказа, а потом отсортируйте по нему.) - person Gregor Thomas   schedule 27.01.2018