我可以将汇总函数的结果存储在R中吗?

时间:2015-02-11 16:08:30

标签: r summary

我在R中有列表(由合作者提供)。每个列表都有一个名为" er"的布尔变量,我想计算TRUE / FALSE的比率。但是,可能有NA。

我将摘要功能应用于一个列表并获得了

Mode        FALSE    TRUE   NA's
"logical"   "199"    "798"  "0"

我试图用以下结果存储结果:

table <- summary(....)

R接受命令,但我在环境中看不到任何内容。任何暗示都将非常感激。谢谢!

2 个答案:

答案 0 :(得分:2)

看起来效果很好:

ER <- c(TRUE, FALSE, NA, TRUE, TRUE, FALSE, FALSE, FALSE)
a <- summary(ER)
print(a)
#   Mode   FALSE    TRUE    NA's 
#logical       4       3       1 

但如果您对某个表感兴趣,请查看同名函数:

b <- table(ER, useNA = "ifany")
print(b)
#ER
#FALSE  TRUE  <NA> 
#    4     3     1 

这也应该说明为什么你可能想避免创建一个名为table的变量。

修改如果您想要TRUEFALSE条目的比例,那么

b/sum(b)
#ER
#FALSE  TRUE  <NA> 
#0.500 0.375 0.125 

b/sum(!is.na(ER))
#ER
#    FALSE      TRUE      <NA> 
#0.5714286 0.4285714 0.1428571

应该有效,具体取决于您是否要计算NA s。在后者中,NA下给出的数字是没有意义的。

Edit2 或者更好,请按照Gregor在评论中的建议查看prop.table

答案 1 :(得分:-1)

您的环境中看不到任何内容,因为

显然它出现在var列表中,但是你应该小心,因为

table <- summary(...)

你正在覆盖内置函数table(),它应该是你应该使用的函数而不是summary。 例如

l <- rep(c(T,F,NA),c(798,199,0))
freq <- table(l,useNA="always")