Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
29
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@SuRuRa

RでTwitterのツイートを取得する

まずTwitterAPIを取得する

Twitterのツイートを持ってくるにはTwitterAPIが必要です。
取得には英語で100wordほどの取得理由を送る必要があります。一番の難関。
☆詳しくは割愛します☆
(追記:rtweetを使えばTwitterAPIはなくてもツイートの取得できるみたいです)

パッケージをインストールしてAPIを設定する

twitteRというパッケージをインストールします。

install.packages("twitteR")
library(twitteR)

APIKey <- "取得したAPI Key"
APISecret <- "取得したAPI secret key"

accessToken <- "取得したAccess token"
accessSecret <- "取得したAccess token secret"

setup_twitter_oauth(APIKey, APISecret, accessToken, accessSecret)

最後の行を実行するとYES or NOと出ると思うのでYESにする。
出なければ気にしなくていいかな

ツイートの分析をする

今回はペプシの公式アカウント(@pepsi_jpn)がやっているプレゼントキャンペーンの本田のじゃんけんの勝率を調べてみようと思います。
userTimelineというものを使います。指定したユーザーのツイートを現在から過去にn個取得します。

tws <- userTimeline("pepsi_jpn", n = 3200) #userTimelineの上限が3200っぽい
tws <- twListToDF(tws) #データフレームにする

lose <- tws[grep("あなたの勝利",tws$text),] #grep関数で一致するものを抽出する
win <- tws[grep("本田圭佑の勝利",tws$text),]

p <- 100*nrow(win)/nrow(tws) #本田圭佑のじゃんけんの勝率
# 実行結果
#"2019-04-18 05:19:22 UTC" "2019-04-18 05:21:30 UTC"の間で
> nrow(win)
[1] 3199
> nrow(lose)
[1] 1
> p
[1] 99.96875

勝率がわかりました。さすが本田圭佑ですね。
ただ今回の場合勝率を出すには3200戦じゃ少ないからもっとやったほうがいいですね。
注意点として、じゃんけんの勝敗に関するツイートのみをしていた場合にこの方法が使えます。
途中に別のツイートが入っていた場合は取り除かなければいけないです。(winとloseの合計で別のツイートがあるかわかります。)

29
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
29
Help us understand the problem. What is going on with this article?