R table()计数中出现不存在的值

时间:2016-03-19 05:13:39

标签: r

我删除的内容如何在table()中显示为零?

> load("matmob.data.Rdata") # get chess game data
> table(matmob.data$result) # show game results

    0-1     1-0 1/2-1/2       * 
 468439  620745  607423      58 
> # Now delete unknown results (i.e. result=="*")
> matmob.data <- matmob.data[matmob.data$result != "*", ]
> table(matmob.data$result) # So how does * still show up???

    0-1     1-0 1/2-1/2       * 
 468439  620745  607423       0 

我怀疑这种奇怪是qda()包中MASS函数出错的原因:

  

&#34;某些群体太小,不适合&#39;&#39;&#34;。

1 个答案:

答案 0 :(得分:2)

table基于因子的级别进行分割,即使值有效,也不会消失。例如:

x <- factor(letters[1:5])
x
# [1] a b c d e
# Levels: a b c d e
y <- x[1:3]
y
# [1] a b c
# Levels: a b c d e

table(x)
# x
# a b c d e 
# 1 1 1 1 1 
table(y)
# y
# a b c d e 
# 1 1 1 0 0 

要摆脱额外的级别,请手动设置,或者只重置因子:

y <- factor(y)
table(y)
# y
# a b c 
# 1 1 1