2016-03-19 11 views
2

削除したものは、table()にゼロ個の出現があります。Rテーブル()内に存在しない値が表示される

> 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 

私はこのおかしなはMASSパッケージからqda()機能で、エラーの原因である疑いがある:

「いくつかのグループが 『QDA』の小さすぎます」。

答えて

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 
+2

や 'テーブル(droplevels(Y)のように' droplevels'()を使用します')+ 1 – A5C1D2H2I1M1N2O1R2T1

+0

Alistaire、ロック!私は要因についてこれを知らなかった、ありがとう! –

関連する問題