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

时间:2017-05-18 07:40:10

标签: r

以下是示例数据框的示例

data.frame1

col1  col2 col3 col4 
1     2    3    4
2     3    4    4

data.frame2

col5  col6 col7 col8
 1    2    3     4
 3    3    5     9

data.frame3

col9  col10  col11  
1      2     3     

期望的输出 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  

这样做的最有效方法是扩展到动态创建的任意数量的数据帧。

提前谢谢你。

编辑:

谢谢大家;效率是您感兴趣的,可以找到简短的讨论here

2 个答案:

答案 0 :(得分:5)

更简单的方法是使用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

答案 1 :(得分:4)

我们可以使用bind_rows

中的dplyr执行此操作
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