gpt4 book ai didi

r - 如何最好地将嵌套列表展平为 R 中的 data.frame?

转载 作者:行者123 更新时间:2023-12-02 16:53:55 26 4
gpt4 key购买 nike

我想将信息从以 json 形式出现的 rest api 转换为 data.frame。该列表是嵌套的,理论上我可以重复调用 purrr::flatten() 以到达列表的底部,然后使用例如 purrr:::map_dfr 和 magrittr:::extract 提取信息。然而,这是非常特定于领域的,并且在从多个“层次结构”中提取信息时效果不佳。我在 R 中有以下设置:

library(rjson)

url <- "https://api3.geo.admin.ch/rest/services/api/SearchServer?searchText=Avenue de Lavaux 63, 1009 Pully&origins=address&type=locations"
result <- rjson::fromJSON(file = URLencode(url))

出现两个问题:

  1. 我怎样才能很好地提取细节、x 和 y 等属性并将它们写入 data.frame?
  2. 最重要的是,我如何直接通过名称提取值。这就是如何提取权重、x、y 和细节的值。

非常感谢。

最佳答案

您可以取消列出结果并像这样提取 x 和 y:

res <- unlist(result)
res['results.attrs.x']
# results.attrs.x
# "151398.09375"

res['results.attrs.y']
# results.attrs.y
# "540429.3125"

您可以像这样获取所有其他值的名称:

names(res)
#[1] "results.id" "results.weight" "results.attrs.origin"
# "results.attrs.geom_quadindex" "results.attrs.zoomlevel"
#[6] "results.attrs.featureId" "results.attrs.lon" "results.attrs.detail"
# "results.attrs.rank" "results.attrs.geom_st_box2d" "results.attrs.lat"
# "results.attrs.num" "results.attrs.y" "results.attrs.x" "results.attrs.label"

然后您可以将它们合并到一个数据框中:

res_df <- data.frame(
X = res['results.attrs.x'],
Y = res['results.attrs.y']
)

关于r - 如何最好地将嵌套列表展平为 R 中的 data.frame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57284718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com