[英]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.