首页 > 解决方案 > 给定另一列的值,如何计算一列中某物的实例?

问题描述

我基本上有一个这样的数据框:

Name Value   
a    TRUE
a    TRUE
b    FALSE
a    FALSE
c    TRUE

但更长的时间,我想获得 a、b 和 c 出现的次数。我还想获得 TRUE 出现在 a、b 和 c 上的时间量。

所以基本上,我想要:

Name Count TRUEs
a    3     2
b    1     0
c    1     1

我该怎么做?

标签: r

解决方案


使用基础 R 替代by

do.call(rbind, by(df, df$Name, FUN = function(x)
    c(Count = length(x$Value), TRUEs = sum(x$Value == TRUE))))
#  Count TRUEs
#a     3     2
#b     1     0
#c     1     1

或使用tapply

do.call(rbind, with(df, tapply(Value, Name, FUN = function(x)
    c(Count = length(x), TRUEs = sum(x == TRUE)))))

推荐阅读