R语言如何统计分组后data frame中满足给定条件的行数
解决方案
你编写的代码无法得到预期结果的核心原因是 n() 是无参函数,作用是统计当前分组的全部行数,不支持传入条件参数。统计分组内满足指定条件的行数,只需利用R中逻辑值的数值特性:TRUE 等价于1、FALSE等价于0,对条件判断的结果求和即可。
正确实现代码
# 若C2列为字符型,使用以下写法 df %>% group_by(C1) %>% summarise(n_condition = sum(C2 == "T")) # 若C2列为逻辑型,可简化为如下写法 df %>% group_by(C1) %>% summarise(n_condition = sum(C2))
运行上述代码即可得到你期望的输出结果。
如果需要同时统计每个分组的总行数和满足条件的行数,可扩展为:
df %>% group_by(C1) %>% summarise( total_rows = n(), n_condition = sum(C2 == "T") )
内容的提问来源于stack exchange,提问作者German Romero Acevedo
相关产品推荐
相关产品推荐

