Удаление строкового шаблона из фрейма данных (данные Twitter в RStudio) - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть большой фрейм данных (~ 500 000 наблюдений), состоящий из данных Twitter (то есть имени пользователя, количества повторных писем, текста) в RStudio. Я хочу провести анализ текста в твиттере, но сначала мне нужно удалить ретвит теги, чтобы они не влияли на мой поиск по ключевым словам.

Например, в твитах, которые являются ретвиттами, текст выглядит так: RT @BobsAccount Great article! Can't wait to learn more. Я хочу удалить строку, прикрепленную к RT @.....

Я использовал lapply и gsub для удаления определенных символов. Например, это успешно удалено "@": data <- data.frame(lapply(data, function(x) {gsub("@","", x)}))

Но я не могу понять, как удалить «строковый шаблон» (то есть любой текст, присоединенный к «RT @»). Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 07 ноября 2018

Вы можете использовать

data <- data.frame(lapply(data, function(x) {gsub("\\bRT\\s+@\\S*\\s*","", x)}))

Шаблон \bRT\s+@\S*\s* соответствует

  • \bRT - целое слово RT
  • \s+ - 1+ пробелов
  • @ - @ char
  • \S* - 0+ непробельных символов
  • \s* - 0+ пробельных символов

См. Демоверсию regex .

Пример кода R:

text <- c("RT @BobsAccount Great article! Can't wait to learn more.")
data <- data.frame(text)
data <- data.frame(lapply(data, function(x) {gsub("\\bRT\\s+@\\S*\\s*","", x)}))
data
## =>                                       text
##     1 Great article! Can't wait to learn more.
...