总结() - 计算因子的百分比和计数

时间:2013-01-23 08:37:07

标签: r dataframe plyr summary

我正在尝试使用plyr-packge中的summarize()来计算因子中每个级别的出现百分比。编辑:嘌呤霉素数据在基础R安装

我的数据如下所示:

library(plyr)
data.p <- as.data.frame(Puromycin[,3])
names(data.p) <- "Treat.group" 

我做到了这一点:

    summarise(  data.p, "Frequencies"= count(data.p), 
"Percent" = count(data.p)/ sum(count(data.p)[2] ))

得到了这个:

  Frequencies.Treat.group Frequencies.freq Percent.Treat.group Percent.freq
1                 treated               12                  NA    0.5217391
2               untreated               11                  NA    0.4782609 

但我不希望生成3.列。这是不必要的,只显示NA。

如何编写代码以便我没有获得NA列?

赞赏任何指示:)

1 个答案:

答案 0 :(得分:4)

您的错误来自:

count(data.p)/ sum(count(data.p)[2] )

如果你看一下分子,我们得到:

R> count(data.p)
  Treat.group freq
1     treated   12
2   untreated   11

所以出现警告是因为您要将第一列除以一个数字,即treated/12,这会给出NA。要避免这种情况,只需选择count(data.p)的第二列:

summarise(data.p, 
             "Frequencies"= count(data.p), 
             "Percent" = count(data.p)[,2]/ sum(count(data.p)[2]))