2017-07-26 4 views
0

この関数を使用して収集したリッチウェイからuser_idを抽出するにはどうすればよいですか?各要素のユーザーIDを抽出する方法

## get only first 8 words from each tweet 
x <- lapply(strsplit(dat$text, " "), "[", 1:8) 
x <- lapply(x, na.omit) 
x <- vapply(x, paste, collapse = " ", character(1)) 
## get rid of hyperlinks 
x <- gsub("http[\\S]{1,}", "", x, perl = TRUE) 
## encode for search query (handles the non ascii chars) 
x <- sapply(x, URLencode, USE.NAMES = FALSE) 
## get up to first 100 retweets for each tweet 
data <- lapply(x, search_tweets, verbose = FALSE) 

私には12の要素があり、それぞれにユーザーIDのリストが含まれていますが、どのようにユーザーIDのみを抽出できますか?あなたは12個のデータフレームのリストを持っているので、それぞれがUSER_IDという列があり、

library(rtweet) 
library(dplyr) 
library(plyr) 
require(reshape2) 

## search for day of rage tweets, try to exclude rt here 
dor <- search_tweets("#Newsnight -filter:retweets", n = 10000) 

## merge tweets data with unique (non duplicated) users data 
## exclude retweets 
## select status_id, retweet count, followers count, and text columns 
dat <- dor %>% 
    users_data() %>% 
    unique() %>% 
    right_join(dor) %>% 
    filter(!is_retweet) %>% 
    dplyr::select(user_id, screen_name, retweet_count, followers_count, text) %>% 
    filter(retweet_count >=50 & retweet_count <100 & followers_count < 10000 & followers_count > 500) 
dat 

## get only first 8 words from each tweet 
x <- lapply(strsplit(dat$text, " "), "[", 1:8) 
x <- lapply(x, na.omit) 
x <- vapply(x, paste, collapse = " ", character(1)) 
## get rid of hyperlinks 
x <- gsub("http[\\S]{1,}", "", x, perl = TRUE) 
## encode for search query (handles the non ascii chars) 
x <- sapply(x, URLencode, USE.NAMES = FALSE) 
## get up to first 100 retweets for each tweet 
data <- lapply(x, search_tweets, verbose = FALSE) 

There are 11 more elements like this

12 elements

+0

あなたは 'data'は12個の要素のリストですか?あなたは 'データ'がどのように見えるかを見せてもらえますか? –

+0

@AlexP、私は質問を編集しました。私はデータを表示するために画像を追加しました –

+0

うーん...それは79x39だと言います。あなたが話す12の要素はどこですか? –

答えて

0

OK:

は、ここに完全なコードです。リストに名前が付けられている場合は、名前が付けられていない場合はこれが機能し、df_name = names(data)[x],部分を取り出します。

lapply(1:12, function(x) { 
    df <- data[[x]] 
    data.frame(user_id = df$user_id, 
      # df_name = names(data)[x], 
      df_number = x, stringsAsFactors=FALSE) }) %>% 
dplyr::bind_rows() 

これは、すべてのユーザーIDと元のデータフレームからの新しいデータフレームを提供するはずです。

+0

このユーザーIDが属するデータフレームに表示される2番目の列を追加するにはどうすればよいですか? –

+0

私は自分の答えを見直して、今質問している内容でなければなりません。それが動作する場合は、答えを受け入れてください。 –

+0

その本を示す:X用の$ user_idの中のエラー:$演算子は私の悪い、ライン3は、 '...のuser_id = DF $ user_idをする必要があります –

関連する問題