汇总每个类别的计数

时间:2014-09-17 14:15:37

标签: r

我有一个数据集(df),我只想获得整个列变量的摘要统计数据,然后是2个特定处理的变量摘要。到目前为止一切顺利:

summary(var1)
aggregate(var1 ~ treatment, results, summary)

然后我有一个值为1和2的变量。我可以用sum函数计算这些:

sum(var3 == 1)
sum(var3 == 2)

然而,当我试图通过治疗来总结这些:

aggregate(var3 ~ treatment, results, sum var3 == 1)

我收到以下错误:

Error in sum == 1 : 
comparison (1) is possible only for atomic and list types

我尝试了很多相同主题的变化,并浏览了我用来帮助我第一次尝试进入R的教科书......但我似乎无法找到答案。

1 个答案:

答案 0 :(得分:2)

以下是一个示例数据集(最好包含样本数据以提出问题reproducible)。

set.seed(15)
results<-data.frame(
    var1=runif(30), 
    var3=sample(1:2, 30, replace=T), 
    treatment=gl(2,15)
)

如果你真的想使用聚合,你可以做

aggregate(var3==1~treatment, results, sum)
#   treatment var3 == 1
# 1         1         9
# 2         2         5

但是由于你在计算离散观察值,table()可能是一次完成所有计数的更好选择

with(results, table(var3, treatment))
#     treatment
# var3  1  2
#    1  9  5
#    2  6 10
相关问题