1
SpatialPolygonsDataFrame
은 ggplot2에서 get_map의 출력을 사용하고 싶습니다. 시행 착오를 거친 후에 그것을 할 수있는 방법을 찾았지만 그것은 나에게 복잡하게 보입니다. 더 깨끗한 방법이 있습니까?map_data에서 SpatialPolygonsDataFrame으로 이동
library(ggplot2)
library(sp)
library(plyr)
pnw.df <- map_data("state",region=c("washington","oregon","idaho"))
# delete islands from subregions
pnw.df$subregion[is.na(pnw.df$subregion)] <- "main"
pnw.df <- subset(pnw.df,subregion == "main")
getPolygons <- function(x) {
Polygons(list(Polygon(x[,c("long","lat")])),ID=unique(x$region))
}
pnw.sp <- SpatialPolygons(dlply(pnw.df, .(region), getPolygons))
pnw.sp <- as(pnw.sp,"SpatialPolygonsDataFrame")
proj4string(pnw.sp) <- "+proj=longlat +ellps=WGS84"
plot(pnw.sp)