【问题标题】:Extract items in a list using variable names in R使用 R 中的变量名提取列表中的项目
【发布时间】:2021-08-17 11:28:45
【问题描述】:

我正在使用 RJSONIO 包解析 JSON。

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

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

dat_raw$`12`[[31]]

正确返回存储在此位置的字符串(在此示例中,'12' 指月份,[[31]] 指天)。

"31-12-2021"

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

for (m in 1:12) {

     print(dat_raw$m[[31]])

}

这自然会返回NULL,因为列表中没有$m[[31]]。 相反,我想提取存储在$`1`[[31]]$`2`[[31]]、...$`12`[[31]] 的对象。

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

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

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

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

【问题讨论】:

  • 您能否提供使用dputdat_raw 示例?你试过unlist(dat_raw) 吗?
  • 感谢@RonakShah。我添加了我尝试从中提取数据的实际列表的屏幕截图。

标签: r list variables extract


【解决方案1】:

如果 12 是 JSON 的第 12 个元素,则可以使用 dat_raw[[12]][[31]] 代替 dat_raw$`12`[[31]]。所以你的for 循环是:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 2021-07-31
    • 2018-06-04
    • 2019-02-12
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多