删除列表以R中的元素数量为条件

时间:2017-04-08 14:28:50

标签: r list character conditional lapply

我有一个未命名的逗号分隔字符列表的列表L。每个字符列表的长度不等。我需要删除L中少于4个元素的字符列表。如何才能做到这一点?示例L

> L
[[1]]
[1] "A" "B" "C" "D"
[[2]]
[1] "E" "F" "G" 

在上面的示例中,我想最终得到:

> L
[[1]]
[1] "A" "B" "C" "D"

1 个答案:

答案 0 :(得分:3)

我们可以使用lengthslengthlist元素作为vector,根据该list创建一个逻辑向量,然后将L[lengths(L)>3] #[[1]] #[1] "A" "B" "C" "D" 作为子集

list

不太优化的方法(之前使用过)是使用sapply遍历length元素,获取L[sapply(L, length)>3] 并将其用于子集

L <- list(LETTERS[1:4], LETTERS[5:7])

数据

switchButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    if (isChecked) {

switchButton.setBackgroundColor(Color.GREEN)

}
}