【问题标题】:Loop googleanalyticsR - Error in if (nrow(out) < all_rows { : argument is of length zero循环 googleanalyticsR - if (nrow(out) < all_rows { 中的错误:参数长度为零
【发布时间】:2017-10-04 09:56:02
【问题描述】:

我正在使用 googleanalyticsR 从 Google Analytics 下载我能下载的所有数据。我的目标是构建一个小型数据框进行分析。

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

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 没有问题,即打印 i 的数量并给我消息:

从总共 [3537] 行中下载 [3537] 行

但是当它在metricsarray[i]中达到i = 12时我得到了这个错误:

2017-10-04 10:37:56> 从总共 [] 行中下载了 [0] 行。 if (nrow(out)

我使用了 tryCatch,但没有任何效果,它继续。我的目标是它将继续测试每个 metricsarray[i] 直到结束。 另外,发现错误时也继续:

JSON 提取错误:无法查询所选维度和指标 在一起。

我是在 R 中使用 googleanalytics API 的新手,请随时提出解决方案、文章或任何我们认为可以帮助我获得更多相关知识的内容。 谢谢,

【问题讨论】:

  • tryCatch 应该适用于您的用例,但会发生什么?我做类似的事情,它工作正常。如果更容易,请随时在 GitHub 上提出问题。

标签: r google-api google-analytics-api


【解决方案1】:

JSON 提取错误:无法查询所选维度和指标 在一起。

并非所有 Google 分析维度和指标都可以一起查询。主要原因是要么数据不存在,要么数据毫无意义。

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

【讨论】:

  • 感谢您的回答。我知道,但我想下载所有可能的数据组合,并且当这是来自服务器的响应时,循环忽略该错误。但更重要的是,循环在找不到数据 (Error in if (nrow(out) &lt; all_rows) { : argument is of length zero) 时忽略它,然后继续尝试从谷歌分析服务器下载另一个指标。
猜你喜欢
  • 1970-01-01
  • 2021-03-08
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 2014-07-27
  • 2016-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多