Попробуйте функцию reduce
из purrr
с функцией bind_cols
из dplyr
По сути, вы хотите передать свой список данных в reduce
, который выполняет итерацию по предоставленной вами функции , что в данном случае составляет bind_cols
. Это сначала свяжет df1
с df2
, затем результирующий кадр данных с df3
, et c.
library(tidyverse)
df1 <- tibble(
x = c(1, 2, 3),
y = c(2, 3, 4)
)
df2 <- tibble(
a = c("a", "b", "c"),
b = c("x", "y", "z")
)
df3 <- tibble(
a = c("h", "n", "c"),
b = c("q", "j", "z")
)
dfs <- list(df1, df2, df3)
result <- dfs %>%
reduce(bind_cols)
result
# A tibble: 3 x 6
x y a b a1 b1
<dbl> <dbl> <chr> <chr> <chr> <chr>
1 1 2 a x h q
2 2 3 b y n j
3 3 4 c z c z