Rのtwitterクライアント使ってフォローしている人を分類してみた

RjpWikiを見てたら、twitteRなる文字が。
予想どおり、twitterクライアントとして動作するパッケージでした。
とりあえず使ってみる
というわけで、早速インストール。ちなみに、ubuntuの場合は、Rcurlのインストールにlibcurl4-gnutls-devがいるみたいなので先にapt-getでいれときましょー
[cpp]
install.packages("RCurl")
install.packages("twitteR")
[/cpp]
使うときに少しハマったのがproxyの設定。実はtwitteRではproxyの設定ができないのです。ただ、twitteRで設定を保存するinitSession()は、RcurlのgetCurlHandle()のラッパーなので、getCurlHandle()でproxyを設定すれば良いようです。
後は、使うだけ。
[cpp]
library(twitteR)
init <- initSession("username", "password")
##proxy経由の場合は次のように書くと良い。
init <- getCurlHandle(userpwd=paste("username","password", sep=":"),.opts=curlOptions(httpHeader=c(Expect=""),proxy="http://proxy.com:8080"))
publicTimeline(init)#パブリックタイムライン表示
userTimeline("myuhe", init)#任意のユーザのタイムライン表示
mentions(init)#リプライを表示
friendsTimeline(init)
Rtweets(init)#R関連のつぶやきを表示
[/cpp]
画面には、こんな感じで出てきます。
分析っぽいことしてみる
こんだけだと、すんごく使い勝手の悪いクライアントでしかないので、Rっぽいことやってみます。
とりあえず、お手軽なとこでクラスタ分析。僕がフォローしている人を勝手ながら標本にさせてもらいまして、その人たちのフォローしている人数、フォローされている人数、発言数使ってこれまた、勝手に分類させてもらいます。
こんな感じで必要なデータをぶっこ抜きまして、おもむろにhclust()
[cpp]
install.packages("Cairo")
library(Cairo)
followlist <- userFriends("myuhe",init)
followvector=NULL
followervector=NULL
status = NULL
name = NULL
for (i in 1: length(followlist)){
if ( followlist[[i]] @ screenName != "wordpress" && followlist[[i]] @ screenName != "google" && followlist[[i]] @ screenName != "rtm"){
followvector[i] <- followlist[[i]] @ friendsCount
followervector[i] <- followlist[[i]] @ followersCount
status[i] <- followlist[[i]] @ statusesCount
name[i] <- followlist[[i]] @ screenName
}
else{
followvector[i] <- NA
followervector[i] <- NA
status[i] <- NA
}
}
mat <- cbind(followvector,followervector)
mat <- cbind(mat,status)
rownames(mat) <- name
mat <- mat[complete.cases(mat),]
hc <- hclust(dist(mat))
Cairo(1000, 1000, file="plot.png", type="png", bg="white")
plot(hc)
dev.off()
[/cpp]
んで、出てきたデンドロビウム・・・じゃなかった、デンドログラムがこれ。
ん~有名な人はちょこっと外れている節があるか??ま、サンプルが66ですからね。もっと多いとおもしろいカモですね。
Rユーザの人は自分のtwitterアカウントで遊んでみてはいかがでしょうか??
Rユーザでない人もこれを機にRを使ってみると新しい発見があるかもしれないですね。
-
前の記事
福岡は大変みたいですが 2009.07.26
-
次の記事
今週の気になるアレJuly 27th 2009.07.27