以 R 中的元素数量为条件删除列表
Delete list conditional on the number of elements in R
我有一个列表 L
未命名的逗号分隔字符列表。每个字符列表的长度不等。我需要从 L
中删除少于 4 个元素的字符列表。如何才能做到这一点?例子 L
:
> L
[[1]]
[1] "A" "B" "C" "D"
[[2]]
[1] "E" "F" "G"
在上面的例子中,我想结束:
> L
[[1]]
[1] "A" "B" "C" "D"
我们可以使用 lengths
获取 list
元素的 length
作为 vector
,基于此创建逻辑向量并对 [=15] 进行子集化=]
L[lengths(L)>3]
#[[1]]
#[1] "A" "B" "C" "D"
一种优化程度较低的方法(之前使用过)是使用 sapply
遍历 list
元素,获取 length
并将其用于子集
L[sapply(L, length)>3]
数据
L <- list(LETTERS[1:4], LETTERS[5:7])
我有一个列表 L
未命名的逗号分隔字符列表。每个字符列表的长度不等。我需要从 L
中删除少于 4 个元素的字符列表。如何才能做到这一点?例子 L
:
> L
[[1]]
[1] "A" "B" "C" "D"
[[2]]
[1] "E" "F" "G"
在上面的例子中,我想结束:
> L
[[1]]
[1] "A" "B" "C" "D"
我们可以使用 lengths
获取 list
元素的 length
作为 vector
,基于此创建逻辑向量并对 [=15] 进行子集化=]
L[lengths(L)>3]
#[[1]]
#[1] "A" "B" "C" "D"
一种优化程度较低的方法(之前使用过)是使用 sapply
遍历 list
元素,获取 length
并将其用于子集
L[sapply(L, length)>3]
数据
L <- list(LETTERS[1:4], LETTERS[5:7])