我正在尝试在带有文本的数据框上使用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))
有没有人知道这里出了什么问题?非常感谢提前!
答案 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))