Rで解析:タグクラウド作成「tagcloud」パッケージの紹介

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

別名「ワードクラウド」と紹介されることもある「タグクラウド」の作成が可能な「tagcloud」パッケージを紹介します。本パッケージは、他のタグクラウド作成パッケージよりもコマンドが単純かと思います。

参考までに、2015年1月から6月に「からだにいいもの」への検索キーワードをGoogle Analyticsより取得しタグクラウドで表現するコマンドを紹介します。意外とアニメでの検索流入が多いです。アニメからRが広がらないか模索しています。

Google Analyticsとの連携は下記「目次」を参考ください。
https://www.karada-good.net/rgoogleanalyticsindex/

「tagcloud」パッケージのバージョンは0.6。R version 3.2.0でコマンドを確認しています。

スポンサーリンク

実行コマンドに必要なパッケージのインストール

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

#パッケージのインストール
install.packages(c("RGoogleAnalytics", "tagcloud"))

実行コマンドの紹介

詳細はコメント、過去記事ならびに各パッケージヘルプを確認してください。

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

###GoogleAnalyticsへのアクセス設定#####
#クライアントIDを設定
client.id <- "&#12463;&#12521;&#12452;&#12450;&#12531;&#12488;ID"

#&#12463;&#12521;&#12452;&#12450;&#12531;&#12488;&#12471;&#12540;&#12463;&#12524;&#12483;&#12488;&#12434;&#35373;&#23450;
client.secret <- "&#12463;&#12521;&#12452;&#12450;&#12531;&#12488;&#12471;&#12540;&#12463;&#12524;&#12483;&#12488;"

#&#12463;&#12521;&#12452;&#12450;&#12531;&#12488;ID&#12362;&#12424;&#12403;&#12471;&#12540;&#12463;&#12524;&#12483;&#12488;&#12398;&#12488;&#12540;&#12463;&#12531;&#12434;&#21462;&#24471;
oauth_token <- Auth(client.id, client.secret)

#&#12503;&#12525;&#12501;&#12449;&#12452;&#12523;id&#12434;&#34920;&#31034;
GetProfiles(oauth_token)

#&#12487;&#12540;&#12479;&#12434;&#21462;&#24471;&#12377;&#12427;&#12503;&#12525;&#12501;&#12449;&#12452;&#12523;id&#12434;&#35373;&#23450;
TableID <- "ga:&#12503;&#12525;&#12501;&#12449;&#12452;&#12523;id"

###&#21462;&#24471;&#24180;,&#26376;&#12434;&#35373;&#23450;#####
year <- 2015 #&#21462;&#24471;&#12375;&#12383;&#12356;&#24180;&#12434;&#35373;&#23450;
month <- 1:6 #&#21462;&#24471;&#12375;&#12383;&#12356;&#26376;&#12434;&#38283;&#22987;:&#32066;&#20102;&#12391;&#35373;&#23450;
########

#&#32368;&#36820;&#12375;&#29992;
###&#21462;&#24471;&#24180;,&#26376;&#12398;&#12505;&#12463;&#12488;&#12523;&#12434;&#20316;&#25104;#####
StartDate <- as.Date(paste(year, "-", formatC(head(month, 1), width = 2, flag="0"), "-01", sep = ""))
EndDate <- as.Date(paste(year, "-", formatC(tail(month, 1), width = 2, flag="0"), "-01", sep = ""))
########

##&#12461;&#12540;&#12527;&#12540;&#12489;&#12395;&#23550;&#12377;&#12427;&#12475;&#12483;&#12471;&#12519;&#12531;&#12354;&#12383;&#12426;&#12398;&#12506;&#12540;&#12472;&#12499;&#12517;&#12540;&#25968;&#12434;&#21462;&#24471;#####
Dimensions <- c("ga:keyword")
Metrics <- c("ga:pageviewsPerSession")

#&#21462;&#24471;&#12497;&#12521;&#12513;&#12540;&#12479;&#12398;&#35373;&#23450;
query.list <- Init(start.date = as.character(StartDate),
                      end.date = as.character(EndDate),
                      dimensions = Dimensions,
                      metrics = Metrics,
                      max.results = 10000,
                      table.id = TableID)

#&#21462;&#24471;&#12497;&#12521;&#12513;&#12540;&#12479;&#12540;&#12434;&#20966;&#29702;
query <- QueryBuilder(query.list)

#&#12487;&#12540;&#12479;&#12398;&#21462;&#24471;
AccessData <- GetReportData(query, oauth_token)

#&#12461;&#12540;&#12527;&#12540;&#12489;&#12395;&#23550;&#12377;&#12427;&#12475;&#12483;&#12471;&#12519;&#12531;&#12354;&#12383;&#12426;&#12398;&#12506;&#12540;&#12472;&#12499;&#12517;&#12540;&#25968;Top100&#12434;&#25277;&#20986;
AccessData <- head(AccessData[order(AccessData[, 2], decreasing = TRUE),], 100)

#&#33394;&#12398;&#35373;&#23450;
#&#12461;&#12540;&#12527;&#12540;&#12489;&#12395;&#23550;&#12377;&#12427;&#12475;&#12483;&#12471;&#12519;&#12531;&#12354;&#12383;&#12426;&#12398;&#12506;&#12540;&#12472;&#12499;&#12517;&#12540;&#25968;&#12434;&#22522;&#28310;
#&#23569;&#12363;&#12425;&#22810;&#12356;&#38918;&#12395;&#33394;&#12434;&#25351;&#23450;
palf <- colorRampPalette(c("red", "#a87963", "gray", "#4b61ba"))
colors <- smoothPalette(AccessData[, 2], palfunc = palf)

#Mac&#12391;&#12398;&#26085;&#26412;&#35486;&#25991;&#23383;&#21270;&#38450;&#27490;
par(family = "HiraKakuProN-W3")

#&#26222;&#36890;&#12395;&#12503;&#12525;&#12483;&#12488;
#algorithm&#12458;&#12503;&#12471;&#12519;&#12531;:"oval","fill","snake","random","list","clist"
#&#21021;&#26399;&#20516;&#12399;"oval"&#12391;&#12377;&#12290;
tagcloud(AccessData[, 1], weights = AccessData[, 2],
         col = colors, order = "size", algorithm = "oval")

#algorithm&#12458;&#12503;&#12471;&#12519;&#12531;:"clist"&#12434;&#35373;&#23450;
#&#12461;&#12540;&#12527;&#12540;&#12489;&#12395;&#23550;&#12377;&#12427;&#12475;&#12483;&#12471;&#12519;&#12531;&#12354;&#12383;&#12426;&#12398;&#12506;&#12540;&#12472;&#12499;&#12517;&#12540;&#25968;Top20
tagcloud(AccessData[, 1][1:20], weights = AccessData[, 2][1:20],
         col = colors[1:20], order = "size", algorithm = "clist")

出力例

・普通にプロット

tagFig1

・algorithmオプション:”clist”を設定

tagFig2

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

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