Как я могу решить это сообщение об ошибке R, относящееся к атомным векторам? - PullRequest
0 голосов
/ 04 июня 2019

Я использую 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 вопросы:

удаление смайликов в R с помощью пакета tm

Заменить определенные символы в строках

Я также попробовал следующее, чтобы очистить свои тексты перед запуском пакета tm, но я получаю ту же ошибку: doc1<-iconv(doc1, "latin1", "ASCII", sub="")

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 04 июня 2019

С помощью

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

вы перезаписываете объект doc1, с этого момента это не кадр данных, а символьный вектор;см:

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

и теперь сброс

doc1$Species

выдает ошибку.
В конце концов вы хотите сделать:

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