试图从R中的Twitter帐户列表中检索关注者

时间:2016-07-01 12:48:58

标签: r twitter api-design

我正试图通过R:

中的twitteR软件包获取某些帐户的关注者
names_list <- c("USER1","USER2", "etc.")

twitter_account <- c()

for (i in names_list){

  url = paste("https://api.twitter.com/1.1/followers/ids.json?cursor=-1&screen_name=",names_list[i], sep = ',')
  twitter <- GET(url,sig)
  content = content(twitter)

  userz <- getUser(names_list[i])
  userz$getFollowers(names_list[i])

  }

但不幸的是它不起作用(得到错误,但即便如此我也很确定它不会起作用。我对R来说相对较新,所以任何帮助都会被赞赏以获取这些数据。即使没有twitteR包。

[ Error in if (num <= 0) stop("num must be positive") else num <- as.integer(num) : 
  missing value where TRUE/FALSE needed] 

如果您可以解释如何通过实际从csv文件中检索names_list来解释它将会有所帮助。但这不是必要的。

1 个答案:

答案 0 :(得分:1)

我相信你的问题来自getUser行。

userz <- getUser(names_list[i])

在这种情况下,'i'是names_list中的值,因为您已将for循环初始化为

for (i in names_list){

因此,您的names_list [i]等同于names_list ['USER1']而不是names_list [1]。

我认为你想要的是对名称进行迭代并直接引用名称:

for (name in names_list){

  url = paste("https://api.twitter.com/1.1/followers/ids.json?cursor=-1&screen_name=", name, sep = ',')
  twitter <- GET(url,sig)
  content = content(twitter)

  userz <- getUser(name)
  userz$getFollowers(name)

  }

或迭代索引并使用names_list索引:

for (i in 1:length(names_list)){

  url = paste("https://api.twitter.com/1.1/followers/ids.json?cursor=-1&screen_name=",names_list[i], sep = ',')
  twitter <- GET(url,sig)
  content = content(twitter)

  userz <- getUser(names_list[i])
  userz$getFollowers(names_list[i])

  }