我正在尝试将地图包中的状态映射加载到R对象中。我希望它是一个SpatialPolygonsDataFrame,或者我在检查后可以变成一个。但是我在第一步失败了 - 把它变成一个R对象。我不知道文件类型。
我首先尝试直接将map()
输出分配给R对象:
st_m <- maps::map(database = "state")
绘制地图,但str(st_m)
似乎什么都不做,除非重绘相同的地图。
然后我尝试将其加载为数据集:st_m <- data("stateMapEnv", package="maps")
但这只返回一个字符串:
> str(stateMapEnv)
chr "R_MAP_DATA_DIR"
我打开了地图目录win-library/3.4/maps/mapdata/
,找到了我认为的地图文件“state.L
”。
我尝试用扫描阅读它并得到一条我不明白的错误信息:
scan(file = "D:/Documents/R/win-library/3.4/maps/mapdata/state.L")
Error in scan(file = "D:/Documents/R/win-library/3.4/maps/mapdata/state.L") :
scan() expected 'a real', got '#'
然后我用Notepad ++打开文件。它似乎是二进制或压缩文件。
所以我认为它可能是一个具有不寻常扩展的R数据文件。但是我尝试加载它会返回一个“错误的幻数”错误:
st_m <- load("D:/Documents/R/win-library/3.4/maps/mapdata/state.L")
Error in load("D:/Documents/R/win-library/3.4/maps/mapdata/state.L") :
bad restore file magic number (file may be corrupted) -- no data loaded
观察到这些反应已经从无益到无法理解到神秘学,我认为最好从stackoverflow的向导寻求帮助。
答案 0 :(得分:0)
这应该能够为您导出“州”或任何其他地图数据集:
library(ggplot2)
state_dataset <- map_data("state")