2016-04-30 11 views
1

Я пытаюсь получить упоминания о данных твиттера, таких как @someone @somebody, из твитера данных и создания нового фрейма данных с информацией о том, кто в твиттере и о тех, кого они упомянули.Идентификация упоминания о комментарии и заполнении фрейма данных

Пример:

tweets <- data.frame(user=c("people","person","ghost"),text = c("Hey, check this out 
@somebody @someone","love this @john","amazing")) 

В результате на этом кадре данных:

**user  text** 

*people Hey, check this out @somebody @someone* 

*person love this @john* 

*ghost amazing* 

Желаемый результат:

**id  mention** 

*people @somebody* 

*people @someone* 

*person john* 

*ghost* 

Может вы, ребята, помогите мне, пожалуйста?

ответ

1

Вы можете сделать что-то вроде этого, используя библиотеку stringr:

library(stringr) 
tweets$mention <- str_extract_all(tweets$text, '\\@\\S+') 

Выход следующим образом:

tweets 

    user          text    mention 
1 people Hey, check this out \[email protected] @someone @somebody, @someone 
2 person       love this @john    @john 
3 ghost         amazing      

Чтобы получить выход в длинном формате, вы можете сделать что-то вроде этого:

library(dplyr) 
library(tidyr) 
tweets <- rbind(filter(tweets, !grepl('\\@', mention)), unnest(tweets)) 
tweets <- tweets[, -2] 

Выход выглядит следующим образом:

user mention 
1 ghost   
2 people @somebody 
3 people @someone 
4 person  @john