我是R的初学者,正在尝试创建一个单词云。我的代码和我无法修复的错误消息如下:
我导入了一个包含tweet的csv文件,从csv文件中包含tweet文本的列中创建了一个列表,然后尝试了下面的代码,它给出了上面的错误消息:
myCorpus <- Corpus(VectorSource(tweets))
myCorpus <- tm_map(myCorpus, tolower)
myCorpus <- tm_map(myCorpus, removePunctuation)
myCorpus <- tm_map(myCorpus, removeNumbers)
myCorpus <- tm_map(myCorpus, stripWhitespace)
myCorpus <- tm_map(myCorpus, removeWords, stopwords('english'))字符串宽度错误(wordsi,cex = sizei,...):无效的'cex‘值另外:警告消息: 1: In max(freq):没有非遗漏的参数到max;返回-Inf 2: In max(freq):没有非遗漏的参数到max;返回-Inf
在这篇文章中,它指出这个错误消息是由于有长度小于3个字符的单词:word cloud -Error in strwidth(words[i], cex = size[i], ...) : invalid 'cex' value
我的代码与本例中的代码不同,因此我尝试通过下面的代码行将字符长度设置为大于3,以避免出现上述错误消息。但是,这将返回以下新的错误消息:
myCorpus <- which(length(myCorpus)>3)UseMethod("TermDocumentMatrix",x)出错:“TermDocumentMatrix”没有适用于"c('integer','numeric')“类的对象的适用方法。”
我非常感谢关于如何解决这个问题的指导。非常感谢你的帮助。
发布于 2017-04-26 04:52:16
Length不返回字符串中的字符数,而是向量中的元素数。
根据文档,过滤3个或更少字符的单词的一种方法如下:
for(i in 1:length(myCorpus)) {
myCorpus[[i]] <- removeWords(myCorpus[[i]], ".{3}?")
}发布于 2017-04-27 07:58:52
我无法解决上面的错误,但下面类似的代码成功地创建了一个没有错误消息的词云:
file<-read.csv("file",stringsAsFactors = FALSE)
library(tm)
library(SnowballC)
library(wordcloud)
file<-Corpus(VectorSource(file))
file<-tm_map(file, PlainTextDocument)
file<- tm_map(file, removePunctuation)
file<- tm_map(file, removeWords, stopwords('english'))
file<- tm_map(file, stemDocument)
wordcloud(file, max.words = 100, random.order = FALSE)https://stackoverflow.com/questions/43620483
复制相似问题