我正试图通过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来解释它将会有所帮助。但这不是必要的。
答案 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])
}