我正在尝试使用 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 循环将永远运行。