Loop googleanalyticsR - 错误if(nrow(out)

问题描述:

我正在使用googleanalyticsR从Google Analytics下载所有数据我的目标是构建一个小数据框来分析。Loop googleanalyticsR - 错误if(nrow(out)<all_rows {:参数长度为零

要下载的所有数据我创建了一个循环:

for (i in 1:length(metricsarray)) { 
    print(paste(i)) 
    tryCatch( google_analytics_4(my_id, 
           date_range = c(start_date, end_date), 
           metrics = metricsarray[i], 
           dimensions = c('transactionId'), 
           max = -1)) %>% 
    assign(gsub(" ", "", paste("metricsarray",i, sep="")), ., inherits = TRUE) 
} 

循环从1到11,没有任何问题,即打印我的号码,给我的留言:

Downloaded [3537] rows from a total of [3537]

但是,当它达到I =在metricsarray 12 I得到这个错误[I]:

2017-10-04 10:37:56> Downloaded [0] rows from a total of []. Error in if (nrow(out) < all_rows) { : argument is of length zero

我用tryCatch,但没有效果,它继续。我的目标是它会继续测试每个指标,直到最后。 此外,还继续当它发现错误:

JSON fetch error: Selected dimensions and metrics cannot be queried together.

我是新来的R中使用Google分析API,随时提出解决方案,文章或任何东西,我们可能会认为它会帮助我获得更多这方面的知识。 谢谢

+0

tryCatch应该为你的用例工作,反而会发生什么?我做类似的,它的工作正常。如果更容易,请随时在GitHub上提出问题。 – MarkeD

JSON fetch error: Selected dimensions and metrics cannot be queried together.

并非所有Google分析维度和指标都可以一起查询。造成这种情况的主要原因是数据不存在或者数据无法识别。

测试可以一起查询元数据的最佳方法是检查dimensions and metrics reference。无效的项目将变灰。

+0

谢谢你的回答。 我知道这一点,但我想下载所有可能的数据组合,并且当循环从服务器响应时忽略该错误。 但是比这更重要的是,当循环发现没有数据时('if(nrow(out) Cads