Rと解析:twitterの情報を取得「twitterreport」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

twitterの情報を取得するパッケージとして「twitterR」パッケージが有名ですが、たまには別なパッケージを利用してみてはいかがでしょうか。

twitter APIを利用する手順は以下の記事を参考にしてください。
・RでTwitter操作:「twitterR」パッケージ!バージョン1.1.9の紹介
 https://www.karada-good.net/analyticsr/r-170/

紹介パッケージのgithubページでは取得データの図式化が紹介されていますが、twitterのAPIが変更されたのか、一部データがNAとなり再現できません。今後のバージョンアップが楽しみなパッケージです。

・twitterreport
 https://github.com/gvegayon/twitterreport

パッケージバージョンは0.15.9000。実行コマンドはR version 4.2.2で確認しています。

スポンサーリンク

パッケージのインストール

下記、コマンドを実行してください。

#パッケージのインストール
install.packages("devtools")
devtools::install_github("gvegayon/twitterreport")

実行コマンド

詳細はコメント、パッケージのヘルプを確認してください。

#パッケージの読み込み
library("twitterreport")

#ツイッターアカウント名の設定
#自身のアカウント以外も情報を取得することができます
users <- c("KaradaGood")

#&#12488;&#12540;&#12463;&#12531;&#12398;&#21462;&#24471;
#https://dev.twitter.com/&#19979;&#37096;&#12398;Manage Your Apps&#12363;&#12425;&#24773;&#22577;&#12434;&#21462;&#24471;
#&#12450;&#12503;&#12522;&#21517;&#12434;&#35373;&#23450;
appname <- "&#12450;&#12503;&#12522;&#21517;&#12434;&#20837;&#21147;"
#Consumer Key (API Key)&#12434;&#35373;&#23450;
key <- "Consumer Key (API Key)&#12434;&#20837;&#21147;"
#Consumer Secret (API Secret)&#12434;&#35373;&#23450;
secret <- "Consumer Secret (API Secret)&#12434;&#20837;&#21147;"
#&#12488;&#12540;&#12463;&#12531;&#12434;&#21462;&#24471;
key <- tw_gen_token(appname, key, secret)
#&#20966;&#29702;&#12364;&#32066;&#20102;&#12377;&#12427;&#12392;&#12467;&#12531;&#12477;&#12540;&#12523;&#12395;&#19979;&#35352;&#20869;&#23481;&#12364;&#34920;&#31034;
Waiting for authentication in browser...
Press Esc/Ctrl + C to abort
Authentication complete.

#&#12450;&#12459;&#12454;&#12531;&#12488;&#12398;&#24615;&#21029;&#12434;&#21462;&#24471;:tw_gender&#12467;&#12510;&#12531;&#12489;
tw_gender(users)
[1] unidentified
Levels: unidentified female male

#URL&#12363;&#12425;&#12450;&#12459;&#12454;&#12531;&#12488;&#21517;&#12434;&#21462;&#24471;:tw_get_tw_account&#12467;&#12510;&#12531;&#12489;
tw_get_tw_account("http://karada-good.net")
[1] "karadagood"

#&#12450;&#12459;&#12454;&#12531;&#12488;&#12398;&#24773;&#22577;&#12434;&#21462;&#24471;:tw_api_get_users_show&#12467;&#12510;&#12531;&#12489;
UserData <- tw_api_get_users_show("karadagood", twitter_token = key)

#&#12450;&#12459;&#12454;&#12531;&#12488;&#12398;&#12501;&#12457;&#12525;&#12527;&#12540;&#12434;&#21462;&#24471;:tw_api_get_followers_list&#12467;&#12510;&#12531;&#12489;
#&#12450;&#12459;&#12454;&#12531;&#12488;&#12364;&#35079;&#25968;&#12434;&#24819;&#23450;&#12375;&#12390;lapply&#12467;&#12510;&#12531;&#12489;&#12434;&#20351;&#29992;
FollowersList <- lapply(users, tw_api_get_followers_list, twitter_token = key)
#data.frame&#21270;
FLData <- do.call(rbind, FollowersList)

#&#12450;&#12459;&#12454;&#12531;&#12488;&#12398;&#12479;&#12452;&#12512;&#12521;&#12452;&#12531;&#12434;&#21462;&#24471;:tw_api_get_statuses_user_timeline&#12467;&#12510;&#12531;&#12489;
#&#12450;&#12459;&#12454;&#12531;&#12488;&#12364;&#35079;&#25968;&#12434;&#24819;&#23450;&#12375;&#12390;lapply&#12467;&#12510;&#12531;&#12489;&#12434;&#20351;&#29992;
TimeLineList <- lapply(users, tw_api_get_statuses_user_timeline, twitter_token = key)
#data.frame&#21270;
TLData <- do.call(rbind, TimeLineList)

#&#12388;&#12406;&#12420;&#12365;&#12434;&#12461;&#12540;&#12527;&#12540;&#12489;&#12391;&#26908;&#32034;
SearchResult <- tw_api_get_search_tweets(q = "&#12397;&#12435;&#12393;&#12429;&#12356;&#12393;", twitter_token = key)
#&#12388;&#12406;&#12420;&#12365;&#20869;&#23481;&#12434;&#30906;&#35469;
head(SearchResult$text)
[1] "&#21463;&#27880;&#32224;&#20999;&#38291;&#36817;&#12368;&#12414;&#65281;&#65306;&#12300;&#12397;&#12435;&#12393;&#12429;&#12356;&#12393; &#34220;&#30740;&#34276;&#22235;&#37070;&#12301;&#12398;&#12372;&#20104;&#32004;&#21463;&#20184;&#12399;&#26469;&#24180;1&#26376;6&#26085;(&#27700;)21&#26178;&#12414;&#12391;&#65281;GSC&#12458;&#12531;&#12521;&#12452;&#12531;&#12391;&#12399;&#12300;&#12521;&#12496;&#12540;&#12473;&#12488;&#12521;&#12483;&#12503; &#34220;&#30740;&#34276;&#22235;&#37070; &#12424;&#12362;&#22823;&#23558;Ver.&#12301;&#12364;&#20184;&#23646;&#65281; https://t.co/FRE3Y4duBI https://t.co/3fguVw40q4"                                
[2] "&#21463;&#27880;&#32224;&#20999;&#38291;&#36817;&#12368;&#12414;&#65281;&#65306;&#12300;&#12397;&#12435;&#12393;&#12429;&#12356;&#12393; &#30690;&#28580;&#12395;&#12371; &#32244;&#32722;&#30528;Ver.&#12301;&#12398;&#12372;&#20104;&#32004;&#21463;&#20184;&#12399;&#26469;&#24180;1&#26376;6&#26085;(&#27700;)21&#26178;&#12414;&#12391;&#65281;GSC&#12458;&#12531;&#12521;&#12452;&#12531;&#12391;&#12399;&#12300;&#29305;&#35069;&#32972;&#26223;&#32025;(&#22812;&#31354;)&#12289;&#29305;&#21029;&#20181;&#27096;&#21488;&#24231;\n&#12301;&#12364;&#20184;&#23646;&#65281; https://t.co/fuweHJIcmu https://t.co/QLD0lfZSdn"                               
[3] "&#21463;&#27880;&#32224;&#20999;&#38291;&#36817;&#12368;&#12414;&#65281;&#65306;&#12300;&#12397;&#12435;&#12393;&#12429;&#12356;&#12393; &#35199;&#35895;&#22805;&#12301;&#12398;&#12372;&#20104;&#32004;&#21463;&#20184;&#12399;&#26469;&#24180;1&#26376;6&#26085;(&#27700;)21&#26178;&#12414;&#12391;&#65281;GSC&#12458;&#12531;&#12521;&#12452;&#12531;&#12391;&#12399;&#12300;&#12521;&#12496;&#12540;&#12473;&#12488;&#12521;&#12483;&#12503; &#35199;&#35895;&#22805; &#31505;&#38996;&#12398;&#23432;&#35703;&#31070;Ver.&#12301;&#12364;&#20184;&#23646;&#65281; https://t.co/FV9zWlGEuV https://t.co/aPOxB3stUg"                                    
[4] "&#35199;&#20303; &#12415;&#12411; &#12397;&#12435;&#12393;&#12429;&#12356;&#12393; &#25913;&#36896; &#23436;&#25104;&#21697; &#12527;&#12531;&#12501;&#12455;&#12473;\n&#29694;&#22312;&#12398;&#20385;&#26684;30,000 &#20870;\n&#29694;&#22312;&#12398;&#20837;&#26413;&#20154;&#25968;0&#20154;\n&#35443;&#12375;&#12367;&#12399;&#12467;&#12481;&#12521;&rArr;https://t.co/sx9RmuPJpt https://t.co/aaxuePvdJI"                                                                                    
[5] "RT @kurosev: &#26032;&#12375;&#12356;&#12464;&#12483;&#12474;&#12420;&#38480;&#23450;&#21830;&#21697;&#12418;&#27810;&#23665;&#29992;&#24847;&#12375;&#12390;&#12362;&#12426;&#12414;&#12377;&#12398;&#12391;&#12289;&#26159;&#38750;&#36275;&#12434;&#12362;&#36939;&#12403;&#12367;&#12384;&#12373;&#12356;&#12290;&#12397;&#12435;&#12393;&#12429;&#12356;&#12393;&#12464;&#12483;&#12474;&#12399;&#20840;&#22269;&#12398;&#25991;&#25945;&#22530;&#12450;&#12491;&#12513;&#12460;&#12373;&#12435;&#12391;&#12362;&#36023;&#12356;&#27714;&#12417;&#38914;&#12369;&#12414;&#12377;&#65281;&#20170;&#26085;&#34892;&#12363;&#12428;&#12427;&#26041;&#12399;&#12452;&#12505;&#12531;&#12488;&#27005;&#12375;&#12435;&#12391;&#12365;&#12390;&#12367;&#12384;&#12373;&#12356;\nhttps://t.co/xagFGsrohL https://t&hellip;"
[6] "&#20170;&#26085;&#12398;&#12397;&#12435;&#12393;&#12429;&#12356;&#12393; https://t.co/heDgHF2dOS"  

#&#26152;&#26085;&#12398;&#12388;&#12406;&#12420;&#12365;&#12434;&#12522;&#12484;&#12452;&#12540;&#12488;&#12375;&#12390;&#12367;&#12428;&#12383;&#12450;&#12459;&#12454;&#12531;&#12488;&#12434;&#20363;&#12395;&#12493;&#12483;&#12488;&#12527;&#12540;&#12463;&#22259;&#12391;&#34920;&#31034;
users <- c("R_beginner", "KaradaGood", "TaKonyX")
TimeLineList <- lapply(users, tw_api_get_statuses_user_timeline, twitter_token = key)
FLData <- do.call(rbind, TimeLineList)
#&#12487;&#12540;&#12479;&#12398;&#20966;&#29702;
TweetCount <- tw_extract(FLData$text)
graph <- tw_network(FLData$screen_name, TweetCount$url, min.interact = 0)
plot(graph)

ネットワーク図で表示

昨日のつぶやきをリツイートしてくれたアカウントを例にしています。


少しでも、あなたのウェブや実験の解析が楽になりますように!!

タイトルとURLをコピーしました