这是一篇关于收集和分析推文的简短文章。我将展示如何使用rtweet包来提取关于R社区的Twitter帖子。这与上周关于rstudio::conf和社区价值的文章有关,也与我之前关于网络搜刮的介绍文章有关。
首先,我们加载rtweet 和其他我们将需要的(tidyverse)包。
libs <- c('dplyr', 'tibble', # wrangling
'stringr', 'rtweet', # strings, tweets
'knitr', 'kableExtra', # table styling
'lubridate', # time
'ggplot2', 'ggthemes') # plots
invisible(lapply(libs, library, character.only = TRUE))
为了使用rtweet 包,你需要一个Twitter账户,并且该包需要被授权来访问该账户。授权过程非常顺利:只需运行下面这样的命令,就会在浏览器中打开一个授权标签(通过rstats2twitter )。批准授权将在你的机器上存储一个凭证令牌(称为.rtweet_token.rds ),用于所有未来的请求。这个令牌最终应该安全地保存在你的主目录中,但你可能仍然想仔细检查它不会被推送到任何公共github仓库。
这就是我们如何搜索最近关于 "rstats "+"社区 "的推文。
rt <- search_tweets(
"rstats community", n = 1000, include_rts = FALSE
)
在搜索字符串中,空白处就像 "AND "一样,顺序并不重要。要搜索任何一个词(包括),你可以使用 "OR"。要搜索特定的术语序列,可以用单引号包起来(例如,"rstats community")。search_tweets 帮助页面有更多更详细的查询说明。
**注意:免费的Twitter API只允许你访问过去6-9天内的推文。**更多的内容,你需要一个付费的API。我原本打算搜索#rstudioconf ,但现在会议已经过去3周了。所以我想这就是我在这篇文章中花费这么长时间的原因。
Twitter的请求限制是每15分钟18000条推文。要想一次性下载更多的推文,你可以设置参数retryonratelimit = TRUE ,但你必须等待15分钟的重试。这是一个方便的功能,这样你就不需要自己去运行单个的18k查询并把它们叠加起来。
通过search_tweets ,我们可以得出关于一条推文、其作者和任何被引用的推文的几乎所有信息:全文、转发数、标签、提及数、作者简历;你可以说出来。一共有90列。不是所有的都会有价值,但对我来说,这看起来是一个非常全面的功能集。下面是这些特征的一小部分:推文的日期时间(以UT为单位),用户名,以及关注者的数量。
rt %>%
select(tweeted = created_at,
screen_name,
followers = followers_count) %>%
head(5) %>%
kable() %>%
column_spec(1:3, width = c("45%", "35%", "20%")) %>%
kable_styling()
| 鸣叫的 | 屏幕名称 | 追随者 |
|---|---|---|
| 2020-02-20 18:32:47 | danicassol | 157 |
| 2020-02-20 17:51:03 | LK_Fitzpatrick | 511 |
| 2020-02-20 17:40:19 | 裴达 | 48209 |
| 2020-02-20 16:34:52 | rOpenSci | 28207 |
| 2020-02-20 13:24:03 | GiusCalamita | 38 |
我们将以一些关于 "rstats""社区 "帖子的(小数字)统计数据作为结论。rtweet文档中包含了更多的例子和对项目的启发。这是过去一周的推文频率。
rt %>%
mutate(date = date(created_at)) %>%
count(date) %>%
ggplot(aes(date, n)) +
geom_line(col = "blue") +
labs(x = "", y = "") +
theme_fivethirtyeight() +
theme(legend.position = "none") +
ggtitle("Daily number of tweets about the 'rstats community'",
subtitle = "Extracted using the rtweet package")

2月12日的显著高峰是由@kierisi ,询问人们对社区的体验。我很期待她的博文。
我正在做一个关于R社区的演讲(是的,是的,我会发一篇博文!),虽然我有*我的观点,但我真的很想展示你的经验
是什么促使你加入#rstats社区?你为什么参加?是什么让你留下来?
(DMs也可以!)pic.twitter.com/7h3xKZ0Cg2
- Jesse Mostipak 🦦(@kierisi)2020年2月12日