2015-11-16 34 views
1

我運行下面的代碼和接收錯誤.jcall():R |錯誤

Error in .jcall("RWekaInterfaces", "[S", "tokenize", .jcast(tokenizer, : java.lang.NullPointerException

setwd("C:\\Users\\jbarr\\Desktop\\test) 
library (tm); library (wordcloud);library (RWeka); library (tau);library(xlsx); 

Comment <- read.csv("testfile.csv",stringsAsFactors=FALSE) 
str(Comment) 
review_source <- VectorSource(Comment) 

corpus <- Corpus(review_source) 
corpus <- tm_map(corpus, removePunctuation) 
corpus <- tm_map(corpus, removeNumbers) 
corpus <- tm_map(corpus, stripWhitespace) 
corpus <- tm_map(corpus, removeWords,stopwords(kind = "english")) 
corpus <- tm_map(corpus, content_transformer(tolower)) 
corpus <- tm_map(corpus, removeWords, c("member", "advise", "inform", "informed", "caller", "call","provided", "advised")) 


dtm <- DocumentTermMatrix(corpus) 
dtm2 <- as.matrix(dtm) 
wordfreq <- colSums(dtm2) 
wordfreq <- sort(wordfreq, decreasing=TRUE) 
head(wordfreq, n=100) 
wfreq <- head(wordfreq, 500) 
set.seed(142) 
words <- names(wfreq) 
dark2 <- brewer.pal(6, "Dark2") 
wordcloud(words[1:100], wordfreq[1:100], rot.per=0.35, scale=c(2.7, .4), colors=dark2, random.order=FALSE) 
write.xlsx(wfreq, "C:\\Users\\jbarr\\Desktop\\test") 

有趣的問題是,我已經跑了多個文件的代碼,並且只有特定的人有錯誤。

請讓我知道您的想法。謝謝!

回答

-1

好像你的數據框裏有NAs。運行is.na()並刪除這些行。嘗試再次運行代碼。它應該工作。

乾杯! Sanmeet

+0

這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 - [來自評論](/ review/low-quality-posts/11184026) –

+0

@MartinEvans但邏輯很好。 –

0

一個建議:看來對於endRow值應爲空或有效數字

df2 <- read.xlsx2("foobar.xlsx", sheetName = "Sheet1", startRow = 1, endRow = 0). 

注意:閱讀使用Excel(.xlsx)格式文件時,我得到這個錯誤。但是

df2 <- read.xlsx2("foobar.xlsx", sheetName = "Sheet1") 

工作正常。所以你可能想檢查你的參數值和參數參數對齊。

0

Sanmeet是正確的 - 這是數據框架中的NA問題。

訂單之前,爲了:REVIEW_SOURCE < - VectorSource(評論)

插入下面的行:

評論[其中(is.na(註釋))] < - 「NULLVALUEENTERED」

這會將您所有的na值更改爲NULLVALUEENTERED(隨意更改)。沒有更多的NAs,代碼應該運行良好。