【发布时间】:2019-02-07 19:48:44
【问题描述】:
当一个元素嵌套在不同的级别并且没有名称时,我似乎无法弄清楚如何访问列表的多个元素。在下面的示例中,我可以很容易地提取标题元素:
library(purrr)
obj1 <- list(resource = list(list(format = "a"), list(format = "b")), title = "blue")
obj2 <- list(resource = list(list(format = "y"), list(format = "z")), title = "red")
x <- list(foo = obj1, bar = obj2)
imap(x[1:length(x)], ~ {
paste0(.y, ": ", .x[["title"]])
})
#> $foo
#> [1] "foo: blue"
#>
#> $bar
#> [1] "bar: red"
由reprex package (v0.2.1) 于 2019 年 2 月 7 日创建
我的目标是有一个访问这些元素的输出:
x[["foo"]][["resource"]][[1]][["format"]]
x[["foo"]][["resource"]][[2]][["format"]]
x[["bar"]][["resource"]][[1]][["format"]]
x[["bar"]][["resource"]][[2]][["format"]]
然后最终输出看起来像这样:
#> $foo
#> [1] "foo: blue (a,b)"
#>
#> $bar
#> [1] "bar: red (y,z)"
似乎我应该能够在一个 purrr 语句中做到这一点,但我无法完全弄清楚。
【问题讨论】: