我正在尝试使用某些关键字提取推文。
我的代码是:
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
我有什么遗失的吗?
答案 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