R使用twitteR包在追随者列表中循环以获得自我网络

R使用twitteR包在追随者列表中循环以获得自我网络,r,twitter,R,Twitter,我试图根据一个给定用户跟踪的twitter账户的封闭列表,获取关于谁跟踪谁的网络数据。也就是说,给定一个用户A,我想检索它的朋友列表,然后了解它的朋友中谁相互跟踪 我遇到的第一个问题是Twitter API设置的速率限制,但似乎通过Sys.sleep()函数解决了这个问题。虽然速度很慢,但我使用了下面所示的函数,第一次它运行得很好。但是,我试图从其他用户的好友列表中获取相同的信息,它不断给我以下类型的错误: curl::curl\u fetch\u内存中出错(url,handle=handle

我试图根据一个给定用户跟踪的twitter账户的封闭列表,获取关于谁跟踪谁的网络数据。也就是说,给定一个用户A,我想检索它的朋友列表,然后了解它的朋友中谁相互跟踪

我遇到的第一个问题是Twitter API设置的速率限制,但似乎通过Sys.sleep()函数解决了这个问题。虽然速度很慢,但我使用了下面所示的函数,第一次它运行得很好。但是,我试图从其他用户的好友列表中获取相同的信息,它不断给我以下类型的错误:

  • curl::curl\u fetch\u内存中出错(url,handle=handle): 已达到超时
  • 错误HTTP 503 以及其他错误。到目前为止,我已经在三台不同的笔记本电脑上试了三次,每次都有不同的错误。知道为什么会这样吗
提前多谢

friendsnet <- function(tuser) {
  require(twitteR)

  # if rate limit is hit, wait for 15 minutes
  limit <- getCurRateLimitInfo()[53,3]
  print(paste("Look up limit", limit))
  if (limit == 0) {
    print("sleeping for fifteen minutes")
    Sys.sleep(900)
  }

  # Find user
  tuser <- getUser(tuser)
  print(tuser$screenName)

  # Empty dataframe
  df <- NULL
  print("empty data frame")

  # Get names of friends
  f <- lookupUsers(tuser$getFriendIDs())
  f.id <- sapply(f, id)
  f.name <- sapply(f, screenName)
  f2 <- as.data.frame(cbind(f.id, f.name))
  print("list of friends")
  print(head(f2))

  for (i in f2$f.name) {

    # if rate limit is hit, wait for 15 minutes
    limit <- getCurRateLimitInfo()[53,3]
    print(paste("Look up limit", limit))
    if (limit == 0) {
      print("sleeping for fifteen minutes")
      Sys.sleep(900)
    }
    A <- getUser(i)
    friends.object <- lookupUsers(A$getFriendIDs())
    # Convert list into data frame
    friends.id <- sapply(friends.object,id)
    friends.name <- sapply(friends.object, screenName)
    friends <- as.data.frame(cbind(friends.id, friends.name))

    for (j in f2$f.name) {
      if (i != j) {
        if ((j %in% friends$friends.name) == TRUE) {
          print(paste(i, "follows", j))
          df <- rbind(df, data.frame(i, j))
        }
      }

    }

  }
  return(df)
}

friendsnet代码似乎是正确的。它有时起作用,尽管速度非常慢。可能与Internet连接相同错误有关。这对我不起作用。代码似乎是正确的。它有时起作用,尽管速度非常慢。可能与Internet连接相同错误有关。这对我不起作用。