r - R中给定代码的循环解决方案是什么?
问题描述
我想要过去 7 天的合并数据。我正在使用以下代码来获得我的结果,但这不是合适的方式。使用 for 循环给我一个错误。也许我做错了。
tables <- db_list_tables(con)
tables
#Total 366 days
day_366 <- tbl(con, "ga_sessions_20170801") %>%
head(10) %>%
collect()
day_365 <- tbl(con, "ga_sessions_20170730") %>%
head(10) %>%
collect()
day_364 <- tbl(con, "ga_sessions_20170729") %>%
head(10) %>%
collect()
day_363 <- tbl(con, "ga_sessions_20170728") %>%
head(10) %>%
collect()
day_362 <- tbl(con, "ga_sessions_20170727") %>%
head(10) %>%
collect()
day_361 <- tbl(con, "ga_sessions_20170726") %>%
head(10) %>%
collect()
day_360 <- tbl(con, "ga_sessions_20170725") %>%
head(10) %>%
collect()
day_359 <- tbl(con, "ga_sessions_20170724") %>%
head(10) %>%
collect()
seven_days <- rbind(day_366, day_365, day_364, day_363, day_362, day_361, day_360, day_359)
解决方案
我们可以遍历对象并collect
library(purrr)
library(dbplyr)
ga_session <- sprintf("ga_sessions_%d", c(20170801, 20170730:20170724))
seven_days <- map_dfr(ga_session, ~ tbl(con, .x) %>%
head %>%
collect())
或使用for
循环
lst1 <- vector('list', length(ga_session)
for(i in seq_along(ga_session)) {
lst1[[i]] <- tbl(con, ga_session[i]) %>%
head %>%
collect()
}
out <- do.call(rbind, lst1)
推荐阅读
- github - 如何在 postgresql 13/windows 10 中安装 pg_background 扩展?
- wordpress - 通过自定义元键查询日期范围内的 WooCommerce 订单
- excel - 如何在excel中对选定范围内的所有公式添加修改
- python - 理解 Python 中的嵌套继承
- nestjs - prisma查询postgresql到nestJs
- c# - concat 聚合 mongo db 驱动程序 c#
- oracle - NUMBER 相当于雪花中的 Oracle
- javascript - Three.js:GLTF 加载但未出现
- javascript - 在 Firefox 的 content.js 中调用 browser.storage.local.get() 后无法 console.log()
- spring - 如何将自定义标头转发到 Spring Zuul 代理中的下游服务?