LoginSignup
49
53

More than 5 years have passed since last update.

Rでネットワーク分析。指定Twitterユーザーのフォロー関係を可視化する。

Last updated at Posted at 2014-05-10

出力結果

RPlot.png

概要

RでTwitterユーザー間のフォロー/フォロワー関係を調べる。
手始めに、指定ユーザーのフォローリストを取得しグラフ化する。

作業

下記ページの作業を行った。
-> Mining Twitter with R - Tutorial 1: Building a corpus from Twitter data - YouTube
 ※英語注意。台詞は聞き取れなくてもOK。映像だけ見れば、何をやればいいかは分かる。

コード

twitnet.R
library(ROAuth)
library(twitteR)
library(igraph)


#【認証処理】

# 設定情報を取得
twit.consumerKey <- "<あなたのTwitter-API key>"
twit.consumerSecret <- "<あなたのTwitter-API secret>"

# 証明書を取得
setwd(tempdir())
cacert.name <- "cacert.pem"
download.file(url = "http://curl.haxx.se/ca/cacert.pem", destfile = cacert.name)
# OAuth認証
twit.cred<-OAuthFactory$new(consumerKey = twit.consumerKey,
                            consumerSecret = twit.consumerSecret,
                            requestURL = "https://api.twitter.com/oauth/request_token",
                            accessURL = "https://api.twitter.com/oauth/access_token",
                            authURL = "https://api.twitter.com/oauth/authorize")
# ※コマンド実行後、Web画面での認証を求められる。
#   Web画面に表示されるPIN番号をコンソールで入力する。
twit.cred$handshake(cainfo = cacert.name)

# Twitter認証
registerTwitterOAuth(twit.cred)


#【本処理】

# 対象ユーザーの情報を取得
user <- getUser("nezuq", cainfo = cacert.name)
# 対象ユーザーのフォロー対象者の情報を取得
friends <- user$getFriends(cainfo = cacert.name)
friends.df <- twListToDF(friends)
friends.n <- nrow(friends)
users <- c(user, friends)
users.df <- twListToDF(users)
users.n <- nrow(users.df)
# グラフデータを作成
g.data <- cbind(1,2:users.n)
g <- graph.edgelist(g.data)
# グラフを表示
V(g)$name <- users.df$screenName
plot(g, vertex.label = V(g)$name, vertex.size = 10, vertex.label.cex = 0.6, margin = -0.4)

感想

申し訳ないが、TwitterのAPI key/API secretをWebでコピーする時に付いてくる半角スペースはNG。
そのせいで3時間くらい不要な調査を強いられたんだよなぁ。

参考ページ

-> Mining Twitter with R - Tutorial 1: Building a corpus from Twitter data - YouTube
-> R言語でTwitterを操作する : 実験ぶろぐ(仮)試供品
-> Package ‘twitteR’
-> ネットワーク分析をもうちょっと勉強 - でたぁっ 感動と失敗の備忘録

49
53
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
49
53