使用filterStream()使用Retweet数据提取推文

时间:2016-08-31 23:38:04

标签: r twitter

我正在尝试使用某些关键字提取推文。

我的代码是:

filterStream(file.name = "tweets.json", track = c('fun', 'arbitrary'),
langauge = 'en', timeout = 1200, oauth = my_oauth)

问题是它不会返回转推。我一直在寻找互联网上可能的解决方案,但找不到它。

官方文档讨论了以下内容,但未提及如何设置filterStream()以检索转发数据:

file.name = NULL, track = NULL, follow = NULL, locations = NULL, language = NULL, timeout = 0, tweets = NULL, oauth = NULL, verbose = TRUE

我有什么遗失的吗?

2 个答案:

答案 0 :(得分:1)

我相信filterStream是在引入引用状态之前编写的,这可以解释差异(转推的命名约定可能已经改变以区分转推和引用状态)。

Twitter&#S; API文档还警告流API不返回与REST API相同的所有信息,因此数据整理功能可以默认将转发设置为FALSE,期望Twittter将提供正确的信息以覆盖那些。

如果您深入了解API文档,您可能还会发现可以更改过滤器级别以扩大或限制流式过滤器。虽然,根据我的经验,这并没有产生重大差异。

答案 1 :(得分:0)

这背后的主要困惑是问题是因为当我检查import collection.mutable.ListBuffer object MapUtils { // var data : Map[String,ListBuffer[(String,Long)]] = Map() val data = collection.mutable.Map[String, ListBuffer[(String, Long)]]() def addData(key : String, message : String) : Unit = { val newTuple = (message, System.currentTimeMillis()) val optionalOldValue = data.get(key) optionalOldValue match { case Some(olderBufferList) => olderBufferList += newTuple case None => data .put(key, ListBuffer[(String, Long)](newTuple)) } } } MapUtils.addData("123", "message 1") MapUtils.addData("456", "message 2") MapUtils.data //=> Map(456 -> ListBuffer((message 2,1472925061065)), 123 -> ListBuffer((message 1,1472925060926))) 列我的结果数据时,它始终显示:

retweeted

然而,当我检查我的> head(t16.df$retweeted, 10) [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 列时,它确实包含了转发。

text