我正在解析foursquare api中的一些数据,我有一部分结果如下所示,一个包含嵌套数据帧的大型列表:
List of 1
$ :List of 26
..$ :'data.frame': 1 obs. of 6 variables:
.. ..$ id : chr "4bf58dd8d48988d129951735"
.. ..$ name : chr "Train Station"
.. ..$ pluralName: chr "Train Stations"
.. ..$ shortName : chr "Train Station"
.. ..$ icon :'data.frame': 1 obs. of 2 variables:
.. .. ..$ prefix: chr "https://ss3.4sqi.net/img/categories_v2/travel/trainstation_"
.. .. ..$ suffix: chr ".png"
.. ..$ primary : logi TRUE
..$ :'data.frame': 1 obs. of 6 variables:
.. ..$ id : chr "4bf58dd8d48988d1fe931735"
.. ..$ name : chr "Bus Station"
.. ..$ pluralName: chr "Bus Stations"
.. ..$ shortName : chr "Bus Station"
.. ..$ icon :'data.frame': 1 obs. of 2 variables:
.. .. ..$ prefix: chr "https://ss3.4sqi.net/img/categories_v2/travel/busstation_"
.. .. ..$ suffix: chr ".png"
.. ..$ primary : logi TRUE
..$ :'data.frame': 1 obs. of 6 variables:
我正在尝试为某些元素排除这些数据帧,以便我可以将它们绑定到我已有的预先存在的文件中。最后,我希望最终结果如下所示:
$id $name
4bf58dd8d48988d129951735 train station
4bf58dd8d48988d1fe931735 bus station
等
谢谢!
答案 0 :(得分:1)
假设您的大型列表名为mylist
。然后,您可以遍历mylist[[1]]
并提取相关列:
do.call(rbind, lapply(mylist[[1]], `[`, c("id", "name")))
或使用rbind.pages
中的jsonlite
函数:
jsonlite::rbind.pages(mylist[[1]])[c("id", "name")]
这两个都会给你
# id name
# 1 4bf58dd8d48988d129951735 Train Station
# 2 4bf58dd8d48988d1fe931735 Bus Station