我该如何解决与原子向量有关的R错误消息?

时间:2019-06-04 09:04:45

标签: r gsub tm

我正在R中使用RStudio,并且正在运行以下代码来对一组非结构化文本执行情感分析。 由于一堆文本包含一些无效字符(由于使用了表情符号和其他拼写错误所致),因此我想在进行分析之前将其删除。

我的R代码(摘录)如下:

setwd("E:/sentiment")

doc1=read.csv("book1.csv", stringsAsFactors = FALSE, header = TRUE)

# replace specific characters in doc1
  doc1<-gsub("[^\x01-\x7F]", "", doc1)

library(tm)

#Build Corpus
corpus<- iconv(doc1$Review.Text, to = 'utf-8')
corpus<- Corpus(VectorSource(corpus))

到达代码行corpus<- iconv(doc1$Review.Text, to = 'utf-8')时,出现以下错误消息:

Error in doc1$Review.Text : $ operator is invalid for atomic vectors

我查看了以下StackOverflow个问题:

remove emoticons in R using tm package

Replace specific characters within strings

在运行tm软件包之前,我还尝试了以下操作来清理我的文本,但出现相同的错误:doc1<-iconv(doc1, "latin1", "ASCII", sub="")

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

doc1<-gsub("[^\x01-\x7F]", "", doc1)

您覆盖了对象doc1,由此它不是数据帧而是字符向量;看到:

doc1 <- gsub("[^\x01-\x7F]", "", iris)
str(doc1)

现在清除

doc1$Species

产生错误。
最终您想做:

doc1$Review.Text <- gsub("[^\x01-\x7F]", "", doc1$Review.Text)