我已经开始使用rtweet软件包,到目前为止,我的查询,语言和地理编码参数都取得了不错的结果。但是,我仍然不知道如何在过去7天内收集Twitter数据。
例如,在下一个代码块中,我想提取7天的一些数据,但是我不确定收集的推文是否会从2017-06-29开始直到2017-06-05,或者是否是从2017- 06-22到2017-06-29:
流所有提及AMLO或lopezobrador的推文7天
stream_tweets("AMLO,lopezobrador",
timeout = 60*60*24*7,
file_name = "tweetsaboutAMLO.json",
parse = FALSE)
将数据读入整齐的tbl数据帧
AMLO <- parse_stream("tweetsaboutAMLO.json")
您知道rtweet中是否有任何命令指定使用search_tweets()或stream_tweets()函数时要使用的时间范围?
答案 0 :(得分:1)
因此,要回答有关gow的问题以更有效地编写它,可以尝试使用for循环或应用列表。这里显示了for循环。
首先,创建一个包含您要拨打的4个日期的列表。
fechas <- seq.Date(from = as.Date("2018-06-24"), to = as.Date("2018-06-27"), by = 1)
然后创建一个空的data.frame以存储您的推文。
df_tweets <- data.frame()
现在,遍历您的列表并填充空的data.frame。
for (i in seq_along(fechas)) {
df_temp <- search_tweets("lang:es",
geocode = mexico_coord,
until= fechas[i],
n = 100)
df_tweets <- rbind(df_tweets, df_temp)
}
summary(df_tweets)
另一方面,以下解决方案可能更方便,更有效:
library(tidyverse)
f_tweets2 <- search_tweets("lang:es",
geocode = mexico_coord,
until= "2018-06-29", ## or latest date
n = 10000)
df_tweets2 %>%
group_by(as.Date(created_at)) %>% ## Group (or set apart) the tweets by date of creation
sample_n(100) ## Obtain 100 random tweets for each group, in this case, for each date.
答案 1 :(得分:0)
过去7天内,我已经找到了收集推文的we。但是,它效率不高。
rt_24 <- search_tweets("lang:es",
geocode = mexico_coord,
until="2018-06-24",
n = 100)
rt_25 <- search_tweets("lang:es",
geocode = mexico_coord,
until="2018-06-25",
n = 100)
rt_26 <- search_tweets("lang:es",
geocode = mexico_coord,
until="2018-06-26",
n = 100)
rt_27 <- search_tweets("lang:es",
geocode = mexico_coord,
until="2018-06-27",
n = 100)
然后,附加数据框
rbind(rt_24,rt_25,rt_26,rt_27)
您知道是否有更有效的方式编写此代码?也许结合使用max_id()函数和直到?