4

streamR::filterStream() でライブ Twitter フィードをリッスンし、streamR::parseTweets() でそれらのフィードを解析し、すべての新しいツイートを毎秒コンソール画面に出力しようとしています。これまでのところ、2つのファイルがあります。1 つ目は次のとおりです。

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)

そして、最初のものを呼び出す2番目のものは次のとおりです。

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)
}

リスナーがタイムアウトになったときに、2 番目のスクリプトを「認識」させるにはどうすればよいですか? これを「より良く」するにはどうすればよいですか?それ以外の場合、while ループは永久に実行されます。

4

0 に答える 0