RでGoogleTrendsを使うパッケージgtrendsR
〜丼ものの検索人気度〜



author: Mr.Unadon@MrUnadon
動作環境:Mac OS Sierra 10.12.1; R version3.3.2; rstan 2.10.1



はじめに


Google TrendsをRから扱うことができるパッケージ{gtrendsR}ですが、最近引数などがガラリと変わりましたね。

おそらくgoogle trends側の仕様が変わったためだと思われます。

少しまとめておきましょう。

うーん、何か例となるデータがあるとよいですね。

では、丼物シリーズで。

本稿では以下を行います。

  1. gtrendsRの準備とデータの取得
  2. 検索人気度のトレンドを可視化
  3. 地域別で検索人気度を可視化

1.gtrendsRの準備とデータの取得


インストールからまいりましょう。以下のコマンドを回せばOKです。

invisible({rm(list=ls());gc();gc()})
##########################################
# package{gtrendsR} version1.9.9.0
# 2017/06/28 Latest method
# Author: Mr.Unadon @MrUnadon
##########################################

#
# インストール
# 

install.packages("drat")       # easier repo access + creation
drat:::add("ghrr")             # make it known
install.packages("gtrendsR")
if (!require("devtools")) install.packages("devtools")
devtools::install_github("PMassicotte/gtrendsR")

続いて、gtrendsRを含め後々使用するパッケージを読み込みます。

さらに検索キーワードを指定して、gtrends関数でトレンドを取得します。

頻繁に使いそうな引数は全部コメントアウトしておきました。

ここでは過去5年の、うなどん、かつどん、ぎゅうどん、てんどん、しらすどん、の検索人気度を取得しましょう。

#
# library読込み
#
library(gtrendsR)
library(tidyverse)
library(plotly)
library(formattable)
library(scales)

#Keywors setting
keyWords<-c("うな丼","カツ丼","牛丼","天丼","しらす丼")

#トレンド取得
getTrends<-gtrends(keyword = keyWords, #キーワードは文字列ベクトル。5つまで。
                   geo = "JP", #検索地域は日本で。
                   time =  #"now 1-H",      #今から1時間前まで
                           #"now 4-H",     #Last four hours
                           #"now 1-d",     #Last day
                           #"now 7-d",     #Last seven days
                           #"today 1-m",    #Past 30 days
                           #"today 3-m",   #Past 90 days
                           #"today 12-m",  #Past 12 months
                           "today+5-y",   #Last five years (default)
                           #"all",         #Since the beginning of Google Trends (2004)
                           #"Y-m-d Y-m-d", #Time span between two dates (ex.: "2010-01-01 2010-04-03")
                   gprop = "web" 
                           #"news"
                           #"images"
                           #"froogle"
                           #"youtube"
                   )

これで、データの取得は完了です。 以下のようなデータが取得されました。


2.検索人気度のトレンドを可視化


取得した検索人気度を時系列で可視化します。

plot(getTrends)でもOKですが、日本語表示とx軸の操作がしたくなると思いますので、そこだけコードを追加しておきます。

本稿では plotlyで出力します。グラフにカーソルを合わせてみて下さい。

#
#検索人気度の推移を可視化
#

ggTrends<-plot(getTrends)+#普通にplotするだけでもOK
    theme_light(base_family = "HiraKakuProN-W3")+#中でggplotが動いているので、このようにして日本語表示可能にする
    scale_x_datetime(expand = c(0,0) ,breaks = date_breaks("6 months"))#日付型をx軸で自由に調整できるように。
#plotlyで描画
ggplotly(ggTrends)


# 通常Rでプロットする時は上記で良い。
# plotlyにPostするときに強制的にPOSIXctが整数にかわるので、強制的に中身を変更します
  #ggTrends<-ggplotly(ggTrends)
  #ggTrends$x$layout$xaxis$type="date"
  #ggTrends$x$layout$xaxis$range=ggTrends$x$layout$xaxis$range*1000
  #for(i in 1 : 5){
  #    ggTrends$x$data[[i]]$x=ggTrends$x$data[[i]]$x*1000
  #}

Figure 1 過去5年 丼物検索人気度の推移

うな丼としらす丼は季節性がありますね。

今年もそろそろ、うな丼の季節です。


3. 地域別で検索人気度を可視化


google trendsでは地域別の人気度も取得できます。

キーワード別で各都道府県につき、値が2個得られるのが何なのかわからないのですが(MinとMax?)、

それも含め可視化してみます。

#
#地域別検索人気度を可視化
#
byRegion = getTrends$interest_by_region
#データ構造の確認
str(byRegion)
formattable::formattable(byRegion)

ggRegion<-ggplot(byRegion,aes(x=keyword,y=hits,fill=keyword))+
    theme_bw(base_size = 10,base_family = "HiraKakuProN-W3")+
    geom_bar(stat = "identity",position = "dodge",alpha=0.5)+
    facet_wrap(~location)+
    theme(axis.text.x = element_text(vjust = 0.5,angle=90,size=1))+
    labs(x = NULL, y = NULL)

#interactive plot
ggplotly(ggRegion)


すみません、facet_wrapしたplotlyがとても重たいので、ここは画像でいきます。

gtrendsR.png
Figure 2 都道府県別  過去5年の丼物検索人気度

僕は”うなぎ”と”しらす”が好きなので、和歌山県くらいのバランスがいいと思います。

Enjoy!!

Written on June 28, 2017