我正在使用tm
包通过以下代码清理一些数据:
mycorpus <- Corpus(VectorSource(x))
mycorpus <- tm_map(mycorpus, removePunctuation)
然后,我想将语料库转换回数据框,以便导出包含数据框原始格式的数据的文本文件。我尝试了以下方法:
dataframe <- as.data.frame(mycorpus)
但这返回一个错误:
“ as.data.frame.default。(mycorpus)中的错误:无法将类“ c(vcorpus,>语料库”)强制转换为data.frame
如何将语料库转换为数据框?
最佳答案
您的语料库实际上只是具有某些额外属性的字符向量。因此,最好将其转换为字符,然后可以将其保存到data.frame中,如下所示:
library(tm)
x <- c("Hello. Sir!","Tacos? On Tuesday?!?")
mycorpus <- Corpus(VectorSource(x))
mycorpus <- tm_map(mycorpus, removePunctuation)
dataframe <- data.frame(text=unlist(sapply(mycorpus, `[`, "content")),
stringsAsFactors=F)
哪个返回
text
1 Hello Sir
2 Tacos On Tuesday
更新:使用较新版本的
tm
,他们似乎已经更新了as.list.SimpleCorpus
方法,该方法确实与使用sapply
和lapply
混淆。现在我想你必须使用dataframe <- data.frame(text=sapply(mycorpus, identity),
stringsAsFactors=F)