CHR*_*HRD 3 conditional r list character lapply
我有一个L未命名的逗号分隔字符列表。每个字符列表的长度不等。我需要删除少于 4 个元素的字符列表L。如何才能做到这一点?示例L:
> L
[[1]]
[1] "A" "B" "C" "D"
[[2]]
[1] "E" "F" "G"
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我想最终得到:
> L
[[1]]
[1] "A" "B" "C" "D"
Run Code Online (Sandbox Code Playgroud)
我们可以用lengths得到length的的list元素作为vector,创建基于该逻辑向量和子集list
L[lengths(L)>3]
#[[1]]
#[1] "A" "B" "C" "D"
Run Code Online (Sandbox Code Playgroud)
一种不太优化的方法(之前使用过)是使用 循环遍历list元素sapply,获取length并使用它来子集
L[sapply(L, length)>3]
Run Code Online (Sandbox Code Playgroud)
L <- list(LETTERS[1:4], LETTERS[5:7])
Run Code Online (Sandbox Code Playgroud)