使用r向GeoJSON添加属性

使用r向GeoJSON添加属性,json,r,geojson,Json,R,Geojson,我正试图准备一些GeoJSON数据,这些数据可以作为choropleth显示在传单地图上。我遇到的问题是,我一辈子都不知道如何向GeoJSON文件添加属性。我可以使用rjson包中的fromJSON()将其放入R,但它最终是一个列表列表,我很难弄清楚如何将某些内容附加到列表中,更不用说深入递归列表来附加数据了 可以找到我创建的GeoJSON文件 我用来导入数据的代码是: library(rjson) Myjson <- fromJSON(paste(readLines("states.js

我正试图准备一些GeoJSON数据,这些数据可以作为choropleth显示在传单地图上。我遇到的问题是,我一辈子都不知道如何向GeoJSON文件添加属性。我可以使用
rjson
包中的
fromJSON()
将其放入R,但它最终是一个列表列表,我很难弄清楚如何将某些内容附加到列表中,更不用说深入递归列表来附加数据了

可以找到我创建的GeoJSON文件

我用来导入数据的代码是:

library(rjson)
Myjson <- fromJSON(paste(readLines("states.json"), collapse=""))
它看起来像:

   State stateincome avgstategift
1:   ACT    28959300     48.82043
2:   NSW   392185792     64.85849
3:    NT     8559478     45.04728
4:   QLD   169039212     53.97208
5:    SA    61092753     50.71622
6:   TAS    23695740     53.09232
7:   VIC   298860549     62.40335
8:    WA   114231960     50.73483

我想将我的stateincome和avgstategift列作为属性添加到我的GeoJSON文件中。My State列将与GeoJSON文件中的State_CODE属性匹配。如果您能使用
rgdal
=
1.11
,我们将不胜感激。

如果您能使用
rgdal
=
1.11
,那么这是一项非常快速的工作。我已将
State
列重命名为
State\u code
,以匹配GeoJSON文件中的内容,以便“更容易”合并:

库(rgdal)
州
   State stateincome avgstategift
1:   ACT    28959300     48.82043
2:   NSW   392185792     64.85849
3:    NT     8559478     45.04728
4:   QLD   169039212     53.97208
5:    SA    61092753     50.71622
6:   TAS    23695740     53.09232
7:   VIC   298860549     62.40335
8:    WA   114231960     50.73483
library(rgdal)

states <- readOGR("states.json", "OGRGeoJSON")

dat <- structure(list(STATE_CODE = structure(1:8, .Label = c("ACT", "NSW", "NT", "QLD", "SA", "TAS", "VIC", "WA"), 
                                 class = "factor"), stateincome = c(28959299.93, 392185791.54, 8559477.92, 169039212.3, 61092752.9878, 23695740.28, 298860548.9008, 114231960.463),
               avgstategift = c(48.8204253852119, 64.8584888549168, 45.0472757892964, 53.9720822484215, 50.7162153310643, 53.0923216942408, 62.4033469022953, 50.7348320924839)), 
          row.names = c(NA, -8L), 
          class = c("data.table", "data.frame"), 
          .Names = c("STATE_CODE", "stateincome", "avgstategift"))

states@data <- merge(states@data, dat)
str(states@data)

## 'data.frame': 8 obs. of  6 variables:
##  $ STATE_CODE  : Factor w/ 9 levels "ACT","NSW","NT",..: 1 2 3 5 6 7 8 9
##  $ STE_CODE11  : Factor w/ 9 levels "1","2","3","4",..: 8 1 7 3 4 6 2 5
##  $ STE_NAME11  : Factor w/ 9 levels "Australian Capital Territory",..: 1 2 3 5 6 7 8 9
##  $ ALBERS_SQM  : num  2.36e+09 8.01e+11 1.35e+12 1.73e+12 9.84e+11 ...
##  $ stateincome : num  2.90e+07 3.92e+08 8.56e+06 1.69e+08 6.11e+07 ...
##  $ avgstategift: num  48.8 64.9 45 54 50.7 ...