【问题标题】:Unlist a nested list with child list having the name of parent list [duplicate]取消列出具有父列表名称的子列表的嵌套列表[重复]
【发布时间】:2020-09-15 22:34:56
【问题描述】:

例如,我有一个列表列表(从不同的帖子复制)。

ls <- list(a = list(e1 = "value1.1", e2 = "value1.2"),
           b = list(e1 = "value2.1", e2 = "value2.2"))

目前列表的结构如下所示:

> lapply(ls, names)
$a
[1] "e1" "e2"

$b
[1] "e1" "e2"

我希望列表采用这种格式。

$a.e1
$a.e2
$b.e1
$b.e2

即子列表与父列表合并,列表重命名为父名称后跟子名称

如果有人能告诉我同时使用 for 循环和应用函数(如果需要的话),那就太好了。

提前致谢

【问题讨论】:

    标签: r list nested-lists


    【解决方案1】:

    我们可以使用cdo.callflattenlist

    ls1 <- do.call("c", ls)
    names(ls1)
    #[1] "a.e1" "a.e2" "b.e1" "b.e2"
    

    如果我们将recursive 指定为FALSEunlist 也可以工作

    unlist(ls, recursive = FALSE)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-29
      • 1970-01-01
      • 2021-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      相关资源
      最近更新 更多