我删除的内容如何在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;。
答案 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