繁体   English   中英

遍历数据框并执行SQL查询

[英]Loop through dataframe and execute SQL query

我有一个数据框,其中每行都有6行SQL查询。 我想执行每个查询并将输出分配给一个数据框。 目前我有6行代码,如下所示:

df6 <- tbl(conn,sql(df[6,]))有没有一种方法可以循环使用dplyr mutate函数在一个语句中分配它? 我在下面尝试过:

i <- 1:nrow(df)
df %>% mutate(paste0('df',i) <- tbl(conn,sql(df[i,])))

这将引发以下错误:

错误:第q1列必须是一维原子向量或列表。

任何帮助表示赞赏。

您的问题似乎还不清楚,但是假设您有一个数据框,其标题为“ sql_code”,则可以将函数应用于该列中的每个元素

lapply(df$sql_code, function(x) tbl(conn, sql(x)))

您将得到一个可以与bind_cols()放在一起的列表(如果数据框的尺寸相同)

借助Shinobi_Atobe函数的帮助,我可以将其开发为所需的对象,如下所示:

list2env(setNames(lapply(df$sql_query,function(x) {tbl(conn, sql(x))}), paste0('df', 1:nrow(df))), envir=.GlobalEnv)

这将从数据帧中的每一行执行sql查询,并将输出存储在名为df1,df2的各个数据帧中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM