2016-06-14 16 views
0

我是文本挖掘主題的入門者。當我運行LDA()在具有996165個觀測一個巨大的數據集,它顯示以下錯誤:r中的LDA錯誤:輸入矩陣的每一行都需要包含至少一個非零條目

錯誤LDA(DTM,K,方法=「吉布斯」時,控制=列表(n開始= n開始,: 每行。輸入矩陣必須包含至少一個非零項

我敢肯定有我的陰莖沒有缺失值,也有「DocumentTermMatrix」和「simple_triplet_matrix」的表是:

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

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

有點困惑「57100956」是怎麼回事,但是由於我的數據集非常大,我不知道如何檢查爲什麼這個錯誤發生。我的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拼盡全力原糖:

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

現在表應具有的所有「非0」的RAW。

相關問題