用rtweet软件包分析推文

255 阅读1分钟

这是一篇关于收集和分析推文的简短文章。我将展示如何使用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:47danicassol157
2020-02-20 17:51:03LK_Fitzpatrick511
2020-02-20 17:40:19裴达48209
2020-02-20 16:34:52rOpenSci28207
2020-02-20 13:24:03GiusCalamita38

我们将以一些关于 "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日