如何避免错误:'sum'对因素没有意义?

时间:2015-08-24 08:20:32

标签: r

我最近遇到了一些问题,我写了一个函数来获取非抽样的谷歌分析数据:

原始功能:

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的位置。

0 个答案:

没有答案