【问题标题】:summarise() - calculating percentages and counts of factorsummarise() - 计算因子的百分比和计数
【发布时间】:2013-01-23 08:37:06
【问题描述】:

我正在尝试使用 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 列?

任何指针表示赞赏:)

【问题讨论】:

    标签: r dataframe plyr summary


    【解决方案1】:

    您的错误来自:

    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]))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 2018-12-17
      • 1970-01-01
      • 2011-06-01
      • 2021-01-10
      相关资源
      最近更新 更多