我们使用了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。
答案 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")
,其中
在你的情况下
dataWide <- dcast(ga.data, Year + Month ~ Browser, value.var="Pageviews")
您可以使用函数melt()将数据从宽到长(与我们在此处相反)重新重新。