2016-06-14 15 views
0

私はテキストマイニングのトピックの初心者です。rのLDAでエラー:入力行列の各行に少なくとも1つの非ゼロエントリが含まれている必要があります

LDA(dtm、k、method = "Gibbs"、control = list(nstart = nstart、: )の各行で、LDA()を996165の観測データを使って実行すると、 。入力行列が含まれている必要があり、少なくとも一つの非ゼロエントリ

は、私は私のコーパスには欠損値がないことをかなり確信しているとも、「DocumentTermMatrix」と「simple_triplet_matrix」の表には、次のとおりです。

table(is.na(dtm[[1]])) 
#FALSE 
#57100956 

table(is.na(dtm[[2]])) 
#FALSE 
#57100956 

「57100956」のやり方はちょっと混乱しますが、私のデータセットはかなり大きいので、どうしてこのエラーが起こるのかを確認する方法はわかりませんrが発生する。私のLDAコマンドは:

ldaOut<-LDA(dtm,k, method="Gibbs", control=list(nstart=nstart, seed = seed, best=best, burnin = burnin, iter = iter, thin=thin)) 

誰かが洞察力を提供することはできますか?ありがとう。

答えて

1

私の意見では、問題は欠損値の存在ではなく、すべて0行の存在です。

raw.sum=apply(table,1,FUN=sum) #sum by raw each raw of the table 

次にあなたがすべて0やっているすべてのRAW削除することができます:今、表には、すべて「非0」のRAWを持っている必要があります

table=table[raw.sum!=0,] 

それを確認するには 。

関連する問題