使用R引用api循环中的多个列表

使用R引用api循环中的多个列表,r,for-loop,google-analytics-api,R,For Loop,Google Analytics Api,我正在使用google analytics api,需要从多个视图中提取数据(n=11,基本上不同的数据库具有相同的数据类型和格式)。但是,除此之外,我还需要分别指定开始日期和结束日期,以获取多个月(n=6)的每个月数据。较长的日期范围不合适,因为数据在指定日期之间聚集 我使用RGA软件包,因为我需要提取多通道数据 我的尝试获取了数据,但只持续了一个月。我不知道如何指定每个月的开始和结束日期列表。如果这不是最优的,很乐意使用不同的方法。 *注意。最后的df还需要引入相对于视图ID的日期,我的代码

我正在使用google analytics api,需要从多个视图中提取数据(n=11,基本上不同的数据库具有相同的数据类型和格式)。但是,除此之外,我还需要分别指定开始日期和结束日期,以获取多个月(n=6)的每个月数据。较长的日期范围不合适,因为数据在指定日期之间聚集

我使用RGA软件包,因为我需要提取多通道数据

我的尝试获取了数据,但只持续了一个月。我不知道如何指定每个月的开始和结束日期列表。如果这不是最优的,很乐意使用不同的方法。 *注意。最后的df还需要引入相对于视图ID的日期,我的代码没有这样做

另外,如果我写错了这个问题,请告诉我,以及我如何改进它

提前谢谢你的建议

# install.packages("RGA")
library(RGA)
library(lubridate)

#get list of month dates for last 6 months
end_months <- ymd("2018-11-01")+ months(0:6)-days(1)
start_months <- ymd("2018-10-01")+ months(0:6)

#list of view ids required to make api call (pseudonymised)
viewId <- c(26494958, 477448251,
       47843527, 96382507,
       537821552, 67482819)

for (i in viewId) {
 ga_data_temp <-
         get_mcf(i, #=This is a (dynamic) ViewID parameter
              start.date = "2019-01-01", end.date = "2019-01-31",
                dimensions=c('mcf:conversionGoalNumber', 'mcf:basicChannelGroupingPath'),
                metrics=c('mcf:totalConversions', 'mcf:totalConversionValue'))
 ga_data_temp$viewId <- i
 ga_data_final <- rbind(ga_data_final, ga_data_temp)
 }
#安装程序包(“RGA”)
图书馆(RGA)
图书馆(lubridate)
#获取最近6个月的月份日期列表

结束月份考虑
扩展.grid
为月份和视图向量的所有组合构建数据框架。然后使用
Map
元素遍历列,这将构建一个数据帧列表,以便在末尾进行一次行绑定(强烈建议在循环内部使用
rbind
)。还可以在
中使用
添加viewId列:


params_df考虑
expand.grid
为月和视图向量的所有组合构建数据框架。然后使用
Map
元素遍历列,这将构建一个数据帧列表,以便在末尾进行一次行绑定(强烈建议在循环内部使用
rbind
)。还可以在
中使用
添加viewId列:


params_df Hi Parfait,很抱歉回复太晚,我今天才试一下。api函数代码很棒,但是有几个问题,其中一个我在原始问题中忽略了。使用expand.grid,我们有每个日期和视图id的排列,但这应该只是每个月的开始和结束日期。第二个问题是,我们如何在调用中传递这些日期,以便将它们放在相应ID旁边的最终_df数据帧中?感谢您迄今为止的帮助,因为开始月份和结束月份向量应该是每个月的开始和结束。你是说2-29日之间的日子会出现吗?至于第二个,你可以在
中添加新的日期列,就像我们在viewId分配给param vId时所做的那样。嗨,帕菲,很抱歉回复太晚,我今天才尝试一下。api函数代码很棒,但是有几个问题,其中一个我在原始问题中忽略了。使用expand.grid,我们有每个日期和视图id的排列,但这应该只是每个月的开始和结束日期。第二个问题是,我们如何在调用中传递这些日期,以便将它们放在相应ID旁边的最终_df数据帧中?感谢您迄今为止的帮助,因为开始月份和结束月份向量应该是每个月的开始和结束。你是说2-29日之间的日子会出现吗?至于第二个,您可以在
中的
中添加新的日期列,就像我们在viewId分配给param vId时所做的那样。
params_df <- expand.grid(start_months=start_months, end_months=end_months, viewId=viewId)

get_api_data <- function(str, end, vId)
    within(get_mcf(vId,                          # =This is a (dynamic) ViewID parameter
                   start.date = str, end.date = end,
                   dimensions=c('mcf:conversionGoalNumber', 'mcf:basicChannelGroupingPath'),
                   metrics=c('mcf:totalConversions', 'mcf:totalConversionValue')),
           viewId <- vId)
)

# ELEMENT-WISE LOOP
df_list <- Map(get_api_data, params_df$start_month, params_df$end_month, params_df$viewId)
# df_list <- with(params_df, Map(get_api_data, start_month, end_month, viewId))  

# BIND ALL DF ELEMENTS TOGETHER
final_df <- do.call(rbind, df_list)