[英]Loop full joins in R / dplyr
我正在尝试构建一个 for 循环,它将在 dplyr 中进行一系列完全连接。
我想加快这个速度:
join1 <- full_join(Q1_output, Q2_output)
join2 <- full_join(join1, Q3_output)
join3 <- full_join(join2, Q4_output)
join4 <- full_join(join3, Q5_output)
join5 <- full_join(join4, Q6_output)
join6 <- full_join(join5, Q7_output)
join7 <- full_join(join6, Q8_output)
join8 <- full_join(join7, Q9_output)
输出文件的数量并不总是等于 9,但它们将始终采用 Qn_output 格式,其中 n 对于给定的分析系列会发生变化。
有没有办法构造一个可以做到这一点的函数? 输出文件将始终是数据框,并且将始终连接到一个公共变量上。 我也很感激关于是否可以构造一个类似的循环来获取 N 列数据帧并将其转换为 N 个向量(例如重复 Q1 <- data$Q1、Q2 <- data$Q2)的任何反馈。
谢谢!
我们可以使用mget
返回list
的值
lst <- mget(paste0("Q", 1:9, "_output")
然后通过执行full_join
reduce
其reduce
为单个数据集
library(tidyverse)
reduce(lst, full_join, by = 'variable')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.