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