我正在尝试获取 XYZ 的追随者,并按追随者数量的降序获取他们(假设我们考虑了 400 个顶级追随者的追随者数量)。代码是——
library(twitteR)
user <- getUser("XYZ")
followers <- user$getFollowers()
b <- twListToDF(followers)
f_count <- as.data.frame(b$followersCount)
u_id <- as.data.frame(b$id)
u_sname <- as.data.frame(b$screenName)
u_name <- as.data.frame(b$name)
final_df <- cbind(u_id,u_name,u_sname,f_count)
sort_fc <- final_df[order(-f_count),]
colnames(sort_fc) <- c('id','name','s_name','fol_count')
我面临的第一个问题是它没有给我所有关注者的列表。我猜这是因为 twitter 有 15 分钟的 API 限制。无论如何我可以解决这个问题?
我要做的第二件事是获取这些关注者的关注者(朋友),并再次按关注者数量的降序对它们进行排序。假设我们采用关注者数量排名前 100 位的关注者。
在一个数据框中包含所有这些关注者的后续代码是(数据框的列名称为:奇数列表示用户,偶数列表示关注者的关注者数量):
alpha <- as.factor(sort_fc[1:400,]$s_name)
user_followees <- rep(list(list()),10)
fof <- rep(list(list()),10)
gof <- rep(list(list()),10)
m <- data.frame(matrix(NA, nrow=100, ncol=800))
colnames(m) <- sprintf("%d",1:80)
for(i in 1:400)
{
user <- getUser(alpha[i])
Sys.sleep(61)
user_followees[[i]] <- user$getFriends(n=100)
fof[[i]] <- twListToDF(user_followees[[i]])$screenName
gof[[i]] <- twListToDF(user_followees[[i]])$followersCount
j <- 2*i-1
k <- 2*i
m[,j] <- fof[[i]]
m[,k] <- gof[[i]]
c <- as.vector(m[,j])
d <- as.vector(m[,k])
n <- cbind(c,d)
sort <- n[order(-d),]
m[,j] <- sort[,1]
m[,k] <- sort[,2]
}
我在这里遇到的错误是:
[1] "Unauthorized"
Error in twInterfaceObj$doAPICall(cmd, params, method, ...) :
Error: Unauthorized
我正在使用Sys.sleep(61),这样我每分钟的搜索次数不会超过 1 次(因为 twitter API 限制为 15 分钟,持续 15 分钟,所以我想这很好用)。
会话信息:
> sessionInfo()
R version 3.0.0 (2013-04-03)
Platform: i386-w64-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] twitteR_1.1.6 rjson_0.2.12 ROAuth_0.9.3 digest_0.6.3 RCurl_1.95-4.1
[6] bitops_1.0-5
我是 R 的新手,需要这种操作来构建兴趣图。所以,如果有人可以帮助我,我会很高兴。
非常感谢您提前提供的任何帮助。