如何根据R中另一列的值将数据框中的列数据添加到语料库?

时间:2015-10-27 01:58:35

标签: r dataframe corpus

所以我有一个数据框,我想根据另一列的值将CorpusText列放入语料库中。 (最后4列是通过以下方式实现的:

usersDF$pos.bool <- usersDF$score >= 1
usersDF$neg.bool <- usersDF$score <= -1

usersDF$pos = as.numeric( usersDF$pos.bool )
usersDF$neg = as.numeric( usersDF$neg.bool )

usersDF

Name    CorpusText   score      pos     neg   pos.bool neg.bool  
Rob       Text        -4         0       1     FALSE    TRUE
Sam       Text        -3         0       1     FALSE    TRUE
Lynda     Text         1         1       0     TRUE     FALSE    
Robert    Text         2         1       0     TRUE     FALSE
RJ        Text         6         1       0     TRUE     FALSE
Rob       Text        -2         0       1     FALSE    TRUE
Bert      Text        -1         0       1     FALSE    TRUE

我对创建积极和消极的情绪语料库感兴趣,我认为可以通过以下方式实现:

library(tm)
pos.corpus <-Corpus(VectorSource(usersDF$CorpusText, usersDF$pos.bool=="TRUE"))
neg.corpus <-Corpus(VectorSource(usersDF$CorpusText, usersDF$neg.bool=="TRUE"))

OR

pos.corpus <- Corpus(VectorSource(usersDF$CorpusText, usersDF$pos=="1"))
neg.corpus <- Corpus(VectorSource(usersDF$CorpusText, usersDF$neg =="1"))

但我每次都会收到以下错误:

Error in VectorSource(usersDF$CorpusText, usersDF$... == "...")
unused argument (usersDF$... == "...")

基于pos或pos.bool列将数据从我的CorpusText列拉入正文集的正确方法是什么?对于基于neg或neg.bool列的否定语料库,同样如何?

1 个答案:

答案 0 :(得分:0)

大脑冻结。感谢@josilber,我意识到我需要的是[]

所以:

pos.corpus <- Corpus(VectorSource(usersDF$CorpusText[usersDF$pos==1])) 

neg.corpus <- Corpus(VectorSource(usersDF$CorpusText[usersDF$neg ==1]))

是解决方案。