R 如何使用geojsonio包保存IDs?

R 如何使用geojsonio包保存IDs?,r,geojson,topojson,geojsonio,R,Geojson,Topojson,Geojsonio,我正在尝试读取使用geojsonio包生成的topoJSON文件: 以下是该文件中第一个条目的相关部分预览: {"type":"Topology", ... , "id":295,"properties":{"comuna":"Arica","id":295}} ... 要导入,请执行以下操作: r15我想ID被sppkg弄坏了 library(geojsonio) r15 <- "https://raw.githubusercontent.com/pachamaltese/chilem

我正在尝试读取使用
geojsonio
包生成的topoJSON文件:

以下是该文件中第一个条目的相关部分预览:

{"type":"Topology", ... , "id":295,"properties":{"comuna":"Arica","id":295}} ...
要导入,请执行以下操作:


r15我想ID被
sp
pkg弄坏了

library(geojsonio)
r15 <- "https://raw.githubusercontent.com/pachamaltese/chilemaps/master/data-raw/r15_arica_y_parinacota.json"
out <- topojson_read(r15)
x <- topojson_list(out)
vapply(x$objects$foo$geometries, "[[", 1, "id")
#> [1] 0 1 2 3
vapply(x$objects$foo$geometries, function(z) z$properties$id, "")
#> [1] "295" "302" "307" "331"
我想这就是你想要的

谢谢@sckott

你的例子给了我一个解决这个问题的简单方法。我的初衷是将地图形象化,下面是一个完全可复制的示例。我决定在TIBLE中创建一个新的
id
列,用于topoJSON数据:

if(!require(“pacman”){install.packages(“pacman”)}
pacman::p_负载(geojsonio,dplyr)
pacman::p_load_gh(“pachamaltese/d3plus”、“pachamaltese/chilemaps”)
#要在地图上可视化的数据
数据3%
排列(id)%>%
mutate(id2=row_number()-1)#在从GH读取后匹配修改的JSON“id”的技巧
#使用空间多边形数据框进行可视化
r15%
d3p_数据(数据3)%>%
d3p_地图(coords=geojsonio::topojson_json(r15),text=“comuna”,tooltip=“valor”)%%>%
d3p_id(c(“id”))%>%
d3p_颜色(“勇气”)
#使用从GitHub读取的topoJSON进行可视化
r15_2%
d3p_地图(coords=geojsonio::topojson_-json(r15_2_-out),text=“comuna”,tooltip=“valor”)%%>%
d3p_id(c(“id2”))%>%#这里我使用id2而不是id
d3p_颜色(“勇气”)

非常感谢,@sckott。鉴于函数改变了ID,它给出了一个“解决方案”。我添加了这个解决方案作为另一个答案。@pachamaltese在一个分支上做了一个更改-如果你喜欢,试试看!我当然在尝试。太棒了!!
library(geojsonio)
r15 <- "https://raw.githubusercontent.com/pachamaltese/chilemaps/master/data-raw/r15_arica_y_parinacota.json"
out <- topojson_read(r15)
x <- topojson_list(out)
vapply(x$objects$foo$geometries, "[[", 1, "id")
#> [1] 0 1 2 3
vapply(x$objects$foo$geometries, function(z) z$properties$id, "")
#> [1] "295" "302" "307" "331"
s <- sf::st_read(r15)
topojson_list(zz)