2015-10-15 89 views
1

我想先進行關鍵字匹配,然後在將其寫入CSV文件之前創建數據框。我宣佈數據幀如下 -無法將列添加到數據框R

outFrame <- data.frame(word1=integer(), 
         word2=integer(), 
         word3=integer()) 

然後我運行它在我的字典 -

for (i in 1:NCOL(myKeywords)) { 
    datadtm <- DocumentTermMatrix(data, control=list(tokenize=BigramTokenizer, wordLengths= c(1,Inf), dictionary = myKeywords[,i])) 
    datam <- as.matrix(datadtm) 
    newmat <- rowSums(datam) 
    outFrame <- cbind2(outFrame, newmat) 
} 

但我發現了一個錯誤 -

Error in data.frame(..., check.names = FALSE) : 
    arguments imply differing number of rows: 0, 999 

我可以看到,它的做正確的匹配,但我無法將每列保存到outFrame數據幀。如何解決這個問題,我搜索了很多東西,但每次遇到同樣的錯誤。

回答

1

它可以通過這個來解決:

outFrame <- data.frame() 

for (i in 1:NCOL(myKeywords)) { 
    datadtm <- DocumentTermMatrix(data, control=list(tokenize=BigramTokenizer, wordLengths= c(1,Inf), dictionary = myKeywords[,i])) 
    datam <- as.matrix(datadtm) 
    newmat <- rowSums(datam) 
    if(nrow(outFrame)==0){ 
    outFrame=data.frame(newmat) 
    }else{ 
    outFrame <- cbind2(outFrame, newmat) 
    } 
} 
+0

謝謝!它現在有效。 –

+0

太棒了,我的榮幸! – pengchy

相關問題