将R中的数据框附加到新列

dee*_*fan 2 r

以下是示例数据框的示例

data.frame1

col1  col2 col3 col4 
1     2    3    4
2     3    4    4
Run Code Online (Sandbox Code Playgroud)

data.frame2

col5  col6 col7 col8
 1    2    3     4
 3    3    5     9
Run Code Online (Sandbox Code Playgroud)

data.frame3

col9  col10  col11  
1      2     3     
Run Code Online (Sandbox Code Playgroud)

期望的输出data.frame.append

col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 
1     2    3    4    NA  NA   NA   NA   NA   NA    NA
2     3    4    4    NA  NA   NA   NA   NA   NA    NA
NA   NA    NA   NA   1    2    3   4    NA   NA    NA
NA   NA    NA   NA   3    3    5   9    NA   NA    NA
NA   NA    NA   NA   NA   NA   NA  NA   1    2     3  
Run Code Online (Sandbox Code Playgroud)

这样做的最有效方法是什么,可以扩展到动态创建的任意数量的数据帧.

先感谢您.

编辑:

谢谢你们; 效率是你感兴趣的,可以在这里找到简短的讨论

Ada*_*uek 6

更简单的方法是使用plyr::ldply:

ldply(list(df1, df2, df3))

  col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11
1    1    2    3    4   NA   NA   NA   NA   NA    NA    NA
2    2    3    4    4   NA   NA   NA   NA   NA    NA    NA
3   NA   NA   NA   NA    1    2    3    4   NA    NA    NA
4   NA   NA   NA   NA    3    3    5    9   NA    NA    NA
5   NA   NA   NA   NA   NA   NA   NA   NA    1     2     3
Run Code Online (Sandbox Code Playgroud)

  • 比......更容易? (5认同)

akr*_*run 5

我们可以bind_rowsdplyr

library(dplyr)
bind_rows(df1, df2, df3)
#    col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11
#1    1    2    3    4   NA   NA   NA   NA   NA    NA    NA
#2    2    3    4    4   NA   NA   NA   NA   NA    NA    NA
#3   NA   NA   NA   NA    1    2    3    4   NA    NA    NA
#4   NA   NA   NA   NA    3    3    5    9   NA    NA    NA
#5   NA   NA   NA   NA   NA   NA   NA   NA    1     2     3
Run Code Online (Sandbox Code Playgroud)