如何根据另一个列表中的条件(真、假)对列表进行子集划分?请看我下面的例子:

l <- list(a=c(1,2,3), b=c(4,5,6,5), c=c(3,4,5,6))
l
$a
[1] 1 2 3

$b
[1] 4 5 6 5

$c
[1] 3 4 5 6

cond <- lapply(l, function(x) length(x) > 3)
cond
$a
[1] FALSE

$b
[1] TRUE

$c
[1] TRUE

> l[cond]

l[cond]中出错:下标类型"list"无效

推荐答案

[需要一个向量,所以在cond上使用unlist:

l[unlist(cond)]
$b
[1] 4 5 6 5

$c
[1] 3 4 5 6

R相关问答推荐

即使声明引发错误,R函数也会在第二次try 时返回结果

用单个表达匹配多个替代模式

多个ggpredicate对象的平均值

在ggplot的注释表格中突出显示最大值

在(g)子中使用asserable字符

在位置周围设定一个半径并识别该半径内的其他位置

在发布到PowerBI Service时,是否可以使用R脚本作为PowerBI的数据源?

如何从当前行上方找到符合特定条件的最接近值?

gganimate在使用shadow_mark选项时不保留所有过go 的标记

R s iml包如何处理语法上无效的因子级别?'

在R中无法读入具有Readxl和lApply的数据集

为什么我的基准测试会随着样本量的增加而出现一些波动?

在R gggplot2中是否有一种方法将绘图轴转换成连续的 colored颜色 尺度?

将重复项转换为NA

从多个线性回归模型中提取系数

如何计算增加10米(0.01公里)的行?

在R中,如何从一系列具有索引名的变量快速创建数据帧?

如何移动点以使它们的打印不重叠

R-找出存在其他变量的各种大小的所有组合

R:使用ApexCharge更改标签在饼图中的位置