我有一个包含任意数量的25个数据帧的列表。所以我想从列表的内容中创建25个数据帧,然后将它们绑定为一个。本质上来说,我想要的x列表:
df1 <- as.data.frame(x[1])
dfi <- as.data.frame(x[i])
df.final = cbind(df1,dfi)
效果很好。这是我尝试没有成功的事情:
for (i in 1:length(x){
df[i] = as.data.frame(x[i])
df.final = cbind(df[i]+1)
}
任何帮助,我们都感激不尽,我们感激不尽
尝试使用reduce
中的purrr
功能和bind_cols
中的dplyr
功能>
基本上,您希望将数据帧列表传递到reduce
中,该列表将通过您提供的函数(在本例中为bind_cols
)进行迭代。这将首先将df1
与df2
绑定,然后将结果数据帧与df3
绑定,依此类推。
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
我们可以使用