难以打开未知类型的包数据文件

时间:2018-05-01 23:18:54

标签: r io format

我正在尝试将地图包中的状态映射加载到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的向导寻求帮助。

1 个答案:

答案 0 :(得分:0)

这应该能够为您导出“州”或任何其他地图数据集:

library(ggplot2)
state_dataset <- map_data("state")