Ошибка unnest_token при очистке данных твитов в RStudio - PullRequest
0 голосов
/ 12 июля 2020

Мне нужно привести в порядок некоторые твиты, которые я добыл, чтобы применить их к графикам и другому анализу, но, похоже, у меня проблемы с пакетами tidyr и tidytext. Я не знаю, потому что я забыл назначить свой файл / данные или это из-за моих имен столбцов.

Это мой ввод:

library(readr)
library(dplyr)
library(tidytext)
library(stringr)
library(lubridate)
library(tidyr)

#load data

agriculturedata1 <- read_delim("agriculturedata1.csv", 
                               ";", escape_double = FALSE, trim_ws = TRUE)

agdt1 <- agriculturedata1

# regex for parsing tweets

replace_reg <- "https?://[^\\s]+|&amp;|&lt;|&gt;|\bRT\\b"

#split into words
words <- agdt1 %>%

mutate(text = str_replace_all(text, replace_reg, "")) %>%
unnest_tokens(word, text, token = "tweets")

Мой вывод должен быть чистый текст без @, все буквы в нижнем регистре и без URL. Но я получаю это сообщение об ошибке:

+   mutate(text = str_replace_all(text, replace_reg, "")) %>%
+   unnest_tokens(word, text, token = "tweets")
Erro: Problem with `mutate()` input `text`.
x argument `str` should be a character vector (or an object coercible to)
i Input `text` is `str_replace_all(text, replace_reg, "")`.
Run `rlang::last_error()` to see where the error occurred.
> rlang::last_error()
**<error/dplyr_error>**
Problem with `mutate()` input `text`.
x argument `str` should be a character vector (or an object coercible to)
i Input `text` is `str_replace_all(text, replace_reg, "")`.
**Backtrace:**
  8. dplyr::mutate(., text = str_replace_all(text, replace_reg, ""))
 10. dplyr:::mutate_cols(.data, ...)
Run `rlang::last_trace()` to see the full context.
> rlang::last_trace()
**<error/dplyr_error>**
Problem with `mutate()` input `text`.
x argument `str` should be a character vector (or an object coercible to)
i Input `text` is `str_replace_all(text, replace_reg, "")`.

**Backtrace:**
     x
  1. \-`%>%`(...)
  2.   +-base::withVisible(eval(quote(`_fseq`(`_lhs`)), env, env))
  3.   \-base::eval(quote(`_fseq`(`_lhs`)), env, env)
  4.     \-base::eval(quote(`_fseq`(`_lhs`)), env, env)
  5.       \-`_fseq`(`_lhs`)
  6.         \-magrittr::freduce(value, `_function_list`)
  7.           \-function_list[[i]](value)
  8.             +-dplyr::mutate(., text = str_replace_all(text, replace_reg, ""))
  9.             \-dplyr:::mutate.data.frame(...)
 10.               \-dplyr:::mutate_cols(.data, ...)
<parent: error/simpleError>
argument `str` should be a character vector (or an object coercible to)
>

Образец моего файла:

   id     X1    tweet             date      
 1 1,27E~ 0     "The Santa Barba~ 12/06/2~
 2 1,27E~ 1     "The Santa Barba~ 12/06/2~
 3 1,27E~ 2     "@AnnBPissedOff ~ 12/06/2~
 4 1,27E~ 3     "\x93WaterFox\x9~ 12/06/2~
 5 1,27E~ 4     "Agriculture les~ 12/06/2~
 6 1,27E~ 5     "@HISTORY #MenTh~ 12/06/2~
 7 1,27E~ 6     "The Santa Barba~ 12/06/2~
 8 1,27E~ 7     "Curious about F~ 12/06/2~
 9 1,27E~ 8     "For farmers #Ag~ 12/06/2~
10 1,27E~ 9     "@ADITYA_101 @Ba~ 12/06/2~

Я новичок в R, поэтому, возможно, эту ошибку очень просто исправить и я просто не вижу, где именно это происходит! Если у кого-то есть более простой способ убрать заминированные твиты, это тоже очень приветствуется!

...