如何在R中实现类似Excel COUNTIF的功能统计列表中小于1的元素
解决方案
要统计列表中小于1的元素数量,用lapply可以按以下步骤实现:
- 用
lapply遍历列表,对每个元素判断是否小于1,得到一个由逻辑值组成的列表:
logic_result <- lapply(my_list, function(x) x < 1)
- 将逻辑列表转换为向量后求和(逻辑值
TRUE会被视为1,FALSE视为0):
less_than_one_count <- sum(unlist(logic_result))
也可以把两步合并成一行简洁代码:
less_than_one_count <- sum(unlist(lapply(my_list, function(x) x < 1)))
补充说明
如果追求更高的运行效率,也可以用vapply替代lapply——它能提前指定返回值类型,省去unlist的额外开销:
less_than_one_count <- sum(vapply(my_list, function(x) x < 1, logical(1)))
如果坚持使用lapply,前面的方法完全可以满足需求,实现的效果和Excel的COUNTIF函数一致,都是统计符合条件的元素数量。
内容的提问来源于stack exchange,提问作者Marlen
相关产品推荐
相关产品推荐

