RGoogleAnalytics将不同的浏览器页面视图视为不同的行

时间:2015-08-13 13:21:58

标签: r google-analytics

我们使用了R的RGoogleAnalytics库。我们使用了谷歌提供的示例代码进行测试。所以我们的初始化就像

query.list<-Init(start.date = "2015-01-01",
             end.date = "2015-07-28",
             dimensions = "ga:year,ga:month,ga:browser",
             metrics = "ga:pageviews",
             max.results = 10000,
             #sort = "ga:year",
             table.id = "ga:xxxxx")
ga.query <- QueryBuilder(query.list)
ga.data <- GetReportData(ga.query, token)

完成此操作并打印结果后,我们得到的结果如下(格式1)

    **Year  Month   Browser              Pageviews**
1   2015    1       Amazon Silk             1
2   2015    1       Android Browser         4
3   2015    1       Chrome                  506
4   2015    1       Firefox                 157
5   2015    1       Internet Explorer       365
6   2015    1       Opera                   1
7   2015    1       Safari                  192
8   2015    1       Safari (in-app)         1

我们正在获得上述格式。但相反,我需要得到像不同的浏览器应该在不同的行(如下面的格式2)

的数据
**Year  Month   ie  firefox  chrome**

  2015   1     365   157       506

我们能否使用RGoogleAnalytics功能打印格式2中的值?或者我们是否在R中使用任何格式化方法将数据从format1列表转换为format2列表

如果特定月份的浏览器下没有网页浏览,RailsAnalytics中还有任何选项可以在浏览器下打印0。

1 个答案:

答案 0 :(得分:2)

您需要将数据框从(一列中的所有浏览器)转换为(新列中的每个浏览器)。这可以通过包reshape2轻松完成。你需要的功能是dcast()。

您可以使用以下命令安装软件包:

install.packages("reshape2")

然后加载:

library(reshape2)

dcast()函数的用法是:

wideDataFrame <- dcast(longDataFrame, idVariableColumn1 + idVariableColumn2 ~ variableColumn, value.var="Name of column with the measurement values")

,其中

  • wideDataFrame是您的结果数据框
  • longDataFrame是以前的数据框(您现在拥有的数据框)
  • idVariableColumn1是必须保留为因子列的列
  • idVariableColumn2是另一列保留为因子
  • variableColumn是您要在新列中“打开”的列。
  • 和value.val =“name blablabla”是包含值的列。

在你的情况下

dataWide <- dcast(ga.data, Year + Month ~ Browser, value.var="Pageviews")

您可以使用函数melt()将数据从宽到长(与我们在此处相反)重新重新