我在R中有列表(由合作者提供)。每个列表都有一个名为" er"的布尔变量,我想计算TRUE / FALSE的比率。但是,可能有NA。
我将摘要功能应用于一个列表并获得了
Mode FALSE TRUE NA's
"logical" "199" "798" "0"
我试图用以下结果存储结果:
table <- summary(....)
R接受命令,但我在环境中看不到任何内容。任何暗示都将非常感激。谢谢!
答案 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
的变量。
修改如果您想要TRUE
和FALSE
条目的比例,那么
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")