【问题标题】:Subsetting lists of lists in RR中列表的子集列表
【发布时间】:2015-08-14 00:13:20
【问题描述】:

如何在 R 中对列表进行子集化?

例如我有这个列表:

[[6]]
[[6]][[1]]
[[6]][[1]][[1]]
[1] 111


[[6]][[2]]
[[6]][[2]][[1]]
[1] 1

[[6]][[2]][[2]]
[1] 11


[[6]][[3]]
[[6]][[3]][[1]]
[1] 11

[[6]][[3]][[2]]
[1] 1


[[6]][[4]]
[[6]][[4]][[1]]
[1] 1

[[6]][[4]][[2]]
[1] 1

[[6]][[4]][[3]]
[1] 1

我正在尝试获取列表中包含 2 个或更少子列表的所有部分。所以在这个例子中,输出将是前五个子列表,

[[6]]
[[6]][[1]]
[[6]][[1]][[1]]
[1] 111


[[6]][[2]]
[[6]][[2]][[1]]
[1] 1

[[6]][[2]][[2]]
[1] 11


[[6]][[3]]
[[6]][[3]][[1]]
[1] 11

[[6]][[3]][[2]]
[1] 1

【问题讨论】:

    标签: r


    【解决方案1】:

    如果你的列表叫lst,那么试试

    lst[lengths(lst) <= 2]
    

    【讨论】:

    • 天哪,救生员。我实际上花了大约 2 个小时试图让哪些语句起作用。谢谢!
    • @rdevn00b np,很高兴它有帮助
    • 还有一个问题,如果你有另一个说 [[5]] 的列表,你会怎么做。你将如何遍历两者?我正在尝试 lapply 但无法正常工作。
    • @rdevn00b 可能是lapply(list(lst1, lst2), function(x) x[lengths(x)&lt;=2]),那么您将获得两个缩短列表的列表
    • 是的,我最终使用了 lapply(c(1:length(foo)), function(x) lapply(foo[x], function(y) y[lengths(y)
    猜你喜欢
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    • 2020-10-10
    • 2019-09-29
    • 1970-01-01
    • 2021-08-02
    • 2020-04-27
    相关资源
    最近更新 更多