由于joran在评论中指出的那样,你可能在矢量NA
值。以下是table
的useNA
参数如何工作的几个示例。
> set.seed(1)
> x <- sample(c(0,1,NA), 10, TRUE)
> x
# [1] 0 1 1 NA 0 NA NA 1 1 0
首先,你可以发现,如果向量包含任何NA
值与
> anyNA(x)
# [1] TRUE
从如果表包含NA值的计数?table
useNA控制:允许只有在计数为正值且甚至为零计数的情况下,值才对应于从不。
允许的值是useNA = c("no", "ifany", "always")
只有当计数为正:
> table(x, useNA = "ifany")
# x
# 0 1 <NA>
# 3 4 3
> identical(sum(table(x, useNA = "ifany")), length(x))
# [1] TRUE
即使是零数:
> y <- x[!is.na(x)] ## remove NA values from x
> table(y, useNA = "always")
#
# 0 1 <NA>
# 3 4 0
> identical(sum(table(y, useNA = "always")), length(y))
# [1] TRUE
从不:
> table(x, useNA = "no")
# x
# 0 1
# 3 4
> identical(sum(table(x, useNA = "no")), length(x))
# [1] FALSE
最有可能在您的向量中缺少值。阅读'?table'上的文档并密切注意各种论点。 – joran 2014-09-20 01:45:09
我会说@Joran的猜测几乎肯定是正确的,但它仍然只是一个猜测。如果你想要一个我们可以验证为真的答案,你需要创建一个[可重现的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-例)。 – MrFlick 2014-09-20 01:48:32