我最近遇到了一些问题,我写了一个函数来获取非抽样的谷歌分析数据:
原始功能:
library(RGA)
brows<-get_ga(profile.id="",
start.date= "2015-08-20",
end.date= "2015-08-23",
metrics = "ga:sessions",
dimensions = "ga:browser,ga:date",
sort="ga:date",
filters="ga:browser==Safari,ga:browser==Chrome,ga:browser==Internet Explorer,ga:browser==Firefox",
segment=NULL,
start = 1,
max = NULL)
该功能用于从Google Api加载数据。没有其他方法(使用R and library(RGA)
)将数据加载到R中。但是,如果查询的时间范围扩展到某个阈值,则Google仅提供sampled Data
。因此,我通过将时间范围分成较小的和平来调整功能,然后将其总结(以避免该特定阈值)
修改功能:
dates <- seq(as.Date("2015-08-20"), as.Date("2015-08-23"), by = "days")
modified <- aggregate(. ~date, FUN = sum,
data = do.call(rbind, lapply(dates,
function(date) {get_ga(profile.id = "",
start.date = date,
end.date = date,
metrics = "ga:sessions",
dimensions = "ga:browser,ga:date",
sort="ga:date",
filters="ga:browser==Safari,ga:browser==Chrome,ga:browser==Internet Explorer,ga:browser==Firefox",
segment=NULL,
start = NULL,
max = NULL)})))
为了避免采样数据,修改后的函数按天聚合数据。它工作正常。现在我得到了error
Error in Summary.factor(1:4, na.rm = FALSE) :
‘sum’ not meaningful for factors
我明白某处必须有一个因素。但是,我不太确定将aggregate
功能扩展到as.numeric
的位置。