展开列表的data.frame列

时间:2016-09-06 20:15:35

标签: r

我发现自己有一个包含一列列表的data.frame。在这些列表中是多边形的坐标;列的其余部分是多边形的特征。

我想“展开”列表中的坐标点,以便我可以使用ggplot2绘制多边形并制作地图,但我很难弄清楚如何执行此操作。

我真的不明白列表是如何构造的,它们都是不同的大小,因为多边形有不同的形状。

该数据最初是一个json文件。我用jsonlite包把它拉进去,然后试着把它煮成相应的组件,如下所示:

library(jsonlite)

json_file <- "https://raw.githubusercontent.com/OpenOil-UG/concessionsmap/master/concessions/data/NG_contracts%2B.geojson" json_data <- jsonlite::fromJSON(json_file, simplifyDataFrame=T) data <- json_data$features data2 <- flatten(data)

这可能不是从json文件开始的正确方法。对于我来说,只要将json中的数据转换为我能理解的data.frame就是最直接的。

*编辑包含实际数据而非样本

1 个答案:

答案 0 :(得分:2)

  

我想[...]使用ggplot2绘制多边形并制作地图

一个选项:

library(geojsonio)
library(ggplot2)
download.file(json_file, tf <- tempfile(fileext = ".geojson"))
df <- fortify(geojson_read(tf, what="sp"))
ggplot(df, aes(long, lat, group=group)) + 
  geom_polygon(color="white")

这会给你:

enter image description here