使用 R 中的变量名提取列表中的项目

Extract items in a list using variable names in R

我正在使用 RJSONIO 包解析 JSON。

已解析的项目包含嵌套列表。

列表中的每一项都可以使用如下方式提取:

dat_raw$`12`[[31]]

正确 returns 存储在此位置的字符串(在此示例中,'12' 指的是月,[[31]] 指的是日)。

"31-12-2021"

我现在想要 运行 一个 for 循环来按顺序提取每个月的日期。像这样:

for (m in 1:12) {

     print(dat_raw$m[[31]])

}

这个,自然是returns一个NULL,因为列表里没有$m[[31]]。 相反,我想提取存储在 $`1`[[31]]$`2`[[31]]、... $`12`[[31]].

的对象

这里肯定有一个相对简单的解决方案,但我没有设法破解它。我很重视一些帮助。谢谢。

编辑:我添加了我试图提取的列表结构的屏幕截图。对于 dput() 输出,实际的 JSON 对象相当大。希望这有帮助

因此,要获取此列表中的日期,我会使用类似 dat_raw$data$`1`[[1]]$date$gregorian$date.

的内容

我想做的是 运行 一个循环,通过循环使用 $data$`1`[[1]]$...$data$`2`[[1]]$... ... $data$`12`[[1]]$... 来提取列表的多个项目$data$m[[1]]$...for 循环中,其中 m 是月份。

如果 12 是 JSON 的第 12 个元素,则

可以使用 dat_raw[[12]][[31]] 而不是 dat_raw$`12`[[31]]。所以你的 for 循环将是:

for (m in 1:12) {
     print(dat_raw[[m]][[31]])
}