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