2015-10-15 54 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

相关问题