使用r package tm()进行文本挖掘:“if(vectorized&&&(length< = 0))”出错

时间:2013-04-23 22:06:06

标签: r text-mining tm

我正在尝试在带有文本的数据框上使用tm(),但此错误仍然出现:"Error in if (vectorized && (length <= 0)) stop("vectorized sources must have positive length") : missing value where TRUE/FALSE needed"

我有一个如下所示的数据框:

     person sex adult                                 state code
1         sam   m     0         Computer is fun. Not too fun.   K1
2        greg   m     0               No it's not, it's dumb.   K2
3     teacher   m     1                    What should we do?   K3
4         sam   m     0                  You liar, it stinks!   K4
5        greg   m     0               I am telling the truth!   K5
6       sally   f     0                How can we be certain?   K6
7        greg   m     0                      There is no way.   K7
8         sam   m     0                       I distrust you.   K8
9       sally   f     0           What are you talking about?   K9
10 researcher   f     1         Shall we move on?  Good then.  K10
11       greg   m     0 I'm hungry.  Let's eat.  You already?  K11

我只使用这些代码:

library(tm)
texts <- as.data.frame(texts)
mycorpus<- Corpus(DataframeSource(texts))

有没有人知道这里出了什么问题?非常感谢提前!

2 个答案:

答案 0 :(得分:0)

希望这是你要找的那个

xkcd.df <- read.csv(file.path(path, datafiles))
xkcd.corpus <- Corpus(DataframeSource(data.frame(xkcd.df[, 3])))

答案 1 :(得分:0)

听起来你需要在你的文本列中创建一个语料库(它似乎与状态代码列合并,如果是这种情况你需要将它分开)。假设状态代码是您要用于tm包的列,那么如果我没有弄错的话,您应该将列(而不是整个数据框)拉入语料库。使用您提供的信息,如果您想这样做,您的代码应如下所示:

mycorpus<- Corpus(VectorSource(texts$state code))

如果您确实需要将文本与州代码分开,那么假设“text”是您的新列:

mycorpus<- Corpus(VectorSource(texts$text))