Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中使用tm和wordcloud软件包创建wordcloud时出错_R_Data Visualization_Tm_Word Cloud - Fatal编程技术网

在R中使用tm和wordcloud软件包创建wordcloud时出错

在R中使用tm和wordcloud软件包创建wordcloud时出错,r,data-visualization,tm,word-cloud,R,Data Visualization,Tm,Word Cloud,我不太清楚使用tm软件包时遇到的一些错误 我知道wordcloud包中的wordcloud函数以语料库作为参数: 如文档中所述:(您给出函数的单词)可以是字符向量,也可以是语料库 到目前为止还不错 考虑到这一点,我有一些简单的代码如下: library(tm) library(wordcloud) corpus <-Corpus(DirSource("/.../MUSIC"), readerControl = list(language="lat")) readerControl =

我不太清楚使用
tm
软件包时遇到的一些错误

我知道
wordcloud
包中的
wordcloud
函数以语料库作为参数:

如文档中所述:(您给出函数的单词)可以是字符向量,也可以是语料库

到目前为止还不错

考虑到这一点,我有一些简单的代码如下:

library(tm)
library(wordcloud)

corpus  <-Corpus(DirSource("/.../MUSIC"), readerControl = list(language="lat")) readerControl = list(language="lat"))

a <- tm_map(corpus, removeWords, c(stopwords("en")), mc.cores=1) 
但我得到了以下错误:

Error in simple_triplet_matrix(i = i, j = j, v = as.numeric(v),  
nrow = length(allTerms),  :  'i, j, v' different lengths  
我不知道为什么语料库的维度不正确。我的印象是语料库是一个可以接受的输入

是否有人对这两种错误的本质有任何洞察,谁见过这一点,也许对各种解决方法有一些想法


提前感谢。

您必须从语料库中创建一个
DocumentTermMatrix
。试试这个

tdm <- TermDocumentMatrix(corpus)  
matrix <- as.matrix(tdm)  # changed to term.matrix
v <- sort(rowSums(matrix),decreasing=TRUE)
d <- data.frame(word = names(v),freq=v)
wordcloud(d$word)

tdm没有数据很难判断。由于
?wordcloud
中的示例工作正常,并且与您的工作流程相匹配,这告诉我一个数据问题。使用
inspect
查看
语料库
。可能是缺少数据、空行。一些不寻常的事情。我一直有着完全相同的问题,但我永远无法解决它。我在ubuntu上遇到了这个问题,但在debian上没有。最终我换到了debian上,但一直没有解决为什么会发生这种情况。我应该提到的是,我也遇到了一个问题,就是在没有加载wordcloud的情况下,试图将tm语料库强制成树状图。
tdm <- TermDocumentMatrix(corpus)  
matrix <- as.matrix(tdm)  # changed to term.matrix
v <- sort(rowSums(matrix),decreasing=TRUE)
d <- data.frame(word = names(v),freq=v)
wordcloud(d$word)