2016-06-14 1 views
0

저는 텍스트 마이닝 주제의 초보자입니다.r의 LDA 오류 : 입력 행렬의 각 행에 적어도 하나의 0이 아닌 항목이 포함되어야합니다.

오류 LDA (DTM, K, 방법 = "깁스", 제어 = 목록 (n 다음 = n 다음, : 각 행은 내가 996165 개 관측과 거대한 데이터 세트를 통해 LDA()를 실행하면 다음과 같은 오류를 표시 . 입력 행렬을 포함 할 필요가 적어도 하나의 비 - 제로 항목

나는 나의 신체에 누락 된 값이 없다는 것을 확신도 "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 행의 존재입니다. 그것을 확인하려면

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

이제 테이블해야이 모든 "비 0"RAWS :

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

그런 다음 모든 공 모든 일을 RAWS를 삭제할 수 있습니다.

관련 문제