1

我正在尝试使用 plyr-packge 中的 summarise() 来计算因子中每个级别的出现百分比。编辑:嘌呤霉素数据位于基础 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 列?

任何指针表示赞赏:)

4

1 回答 1

4

您的错误来自:

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

如果您查看分子,我们会得到:

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

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

summarise(data.p, 
             "Frequencies"= count(data.p), 
             "Percent" = count(data.p)[,2]/ sum(count(data.p)[2]))
于 2013-01-23T08:56:53.253 回答