4

我正在尝试使用 streamR::filterStream() 收听实时 Twitter 提要,使用 streamR::parseTweets() 解析这些提要,然后每秒将所有新推文打印到控制台屏幕。到目前为止,我有两个文件。第一个是:

library(twitteR)
library(ROAuth)
library(streamR)

#load in RData file that contains the ROAuth object called cred
load("PATH_TO_CREDENTIALS_RData_FILE")
registerTwitterOAuth(cred)
filterStream(file="goog_tweets.json", track="goog", timeout=3600, oauth=cred)

第二个,称为第一个,是这样的:

library(streamR)

system("R CMD BATCH /home/yourname/twitter/public_listener.R", wait = F)

tweets.df <- parseTweets("goog_tweets.json")
while(TRUE){
  newtweets <- parseTweets("goog_tweets.json", verbose = "FALSE")
  if(nrow(newtweets) > nrow(tweets.df)){
    diff <- nrow(newtweets) - nrow(tweets.df)
    seq <- 1:diff
    print(newtweets[seq,]$text)
  }
  tweets.df <- newtweets
  Sys.sleep(2)
}

当侦听器超时时,如何使第二个脚本“识别”?我怎样才能做到这一点“更好”?否则,while 循环将永远运行。

4

0 回答 0