Получение подписчиков нескольких пользователей Twitter через rtweet - PullRequest
0 голосов
/ 08 мая 2018

Я использую пакет rtweet Майкла У. Кирни и пытаюсь получить список подписчиков нескольких пользователей. Пока это работает прекрасно, если я хочу удалить подписчиков одного пользователя за раз, независимо от количества подписчиков, которые он / она может иметь.

Но для моего проекта я должен удалить 155 профилей, поэтому мне было интересно, есть ли функция или способ, который позволил бы мне написать одну команду для всех пользователей? До сих пор, когда я пытаюсь использовать более одного пользователя, я получаю сообщение об ошибке, в котором говорится, что я могу использовать только одного пользователя одновременно.

РЕДАКТИРОВАТЬ : две важные части информации - желаемым выводом является набор данных из 155 столбцов подписчиков каждого пользователя, который я могу экспортировать / записать в виде csv или использовать в качестве фрейма данных. Наконец, предлагая какое-либо решение, имейте в виду, что если бы я использовал любую функцию из семейства apply, я бы в итоге получил список (согласно предложенному ответу Amar), но тогда проблема заключается в преобразовании списка в data.frame. и поскольку длина столбцов будет неравной, я не могу использовать функцию as.data.frame().

Есть идеи или способ обойти? Заранее спасибо.

1 Ответ

0 голосов
/ 08 мая 2018

Используйте либо петлю for, либо apply, чтобы выполнить работу. Пакет создан, чтобы упростить взаимодействие между вами и Twitter API, предоставляя функции, выполняющие одну конкретную работу (обычно зеркальное отображение API). Остальное (например, ваш запрос) заполняется буквой R и другими пакетами.

( Я следую этому уроку здесь: )

Допустим, у вас есть список профилей, которые вы хотите обработать в векторе:

profiles <- c("Batman", "CatWomen", "Blade")

Мы можем создать пользовательскую функцию для получения следующих 3 profiles:

getAllFollowers <- function(name) {

  ## how many total follows does cnn have?
  cnn <- lookup_users(name)

  ## get them all (this would take a little over 5 days)
getAllFollowers <- function (name) { 
  user_info <- lookup_users(name) 
  user_follower <- get_followers(name, n=user_info$followers_count, retryonratelimit = T)
  Sys.sleep(2) #sleep for 2 seconds
  return(user_follower) }

Затем мы можем использовать lapply, чтобы перебрать список profiles и получить их следующим образом:

out <- lapply(X = profiles, FUN = getAllFollowers)

Это создаст list объект, который (из чтения):

Фрагмент данных тибблов идентификаторов подписчиков (один столбец с именем "user_id").

...