廿TT

譬如水怙牛過窓櫺 頭角四蹄都過了 因甚麼尾巴過不得

RGoogleAnalytics の "yearMonth" と "date" を日付オブジェクトにかえる関数

動機(Motivation)

RGoogleAnalytics で引っ張ってきた "yearMonth"(年月)と "date"(日付)は、

> head(datYM)
  yearMonth sessions
1    201310      182
2    201311      379
3    201312      759
4    201401     6250
5    201402     1847
6    201403     2232

> head(datDate)
      date sessions
1 20131001        5
2 20131002        4
3 20131003        7
4 20131004        3
5 20131005        2
6 20131006        1

こういう形式で入ってるので、折れ線グラフとか書くときに日付オブジェクトにかえる必要がある。

なんか毎回おんなじような作業してるので関数化した。

コード(Code)


例(Example)

library("RGoogleAnalytics")
query <- QueryBuilder()
access_token <- query$authorize()

ここでアクセストークンをコピペ

ga <- RGoogleAnalytics()
ga.profiles <- ga$GetProfileData(access_token)

#データの取得
query$Init(start.date = "2013-10-01",
           end.date = "2014-12-31",
           dimensions = "ga:yearMonth",
           metrics = "ga:sessions",
           max.result = 10000,
           table.id = paste("ga:",ga.profiles$id[1],sep="",collapse=","),
           access_token=access_token)
datYM<- ga$GetReportData(query)

datYM$YM <-as.Date4ga(datYM$yearMonth)

query$Init(start.date = "2013-10-01",
           end.date = "2014-12-31",
           dimensions = "ga:date",
           metrics = "ga:sessions",
           max.result = 10000,
           table.id = paste("ga:",ga.profiles$id[1],sep="",collapse=","),
           access_token=access_token)
datDate<- ga$GetReportData(query)

datDate$Date <-as.Date4ga(datDate$date)

library(ggplot2)
library(scales)

theme_set(theme_bw(15,"HiraKakuPro-W3"))


p1 <- ggplot(datYM,aes(x=YM,y=sessions)) + 
  geom_line() + 
  scale_y_continuous(labels = comma)+
  scale_x_date(labels = date_format("20%y/%m")) +
  labs(x="年/月", y="セッション")

p2 <- ggplot(datDate,aes(x=Date,y=sessions)) + 
  geom_line() +
  scale_y_continuous(labels = comma)+
  scale_x_date(labels = date_format("20%y/%m/%d")) +
  labs(x="年/月/日", y="セッション")

library(grid)
grid.newpage()
pushViewport(viewport(layout = grid.layout(2, 1)))
print(p1,  vp=viewport(layout.pos.row = 1, layout.pos.col = 1))
print(p2,  vp=viewport(layout.pos.row = 2, layout.pos.col = 1))

f:id:abrahamcow:20150106063338p:plain

RGoogleAnalytics の使いかたは、

を参照。