我正在尝试使用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列?
赞赏任何指示:)
答案 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]))