首页 > 解决方案 > R - 将列与不同的列垂直合并

问题描述

使用如下数据框,

first <- data.frame(x0=1:5,
                    x1=rnorm(5),
                    x2=c("M","F","M","F","F"))

second <- data.frame(x0=10:14,
                     x1=rnorm(5),
                     x3=c("M","F","M","F","F"))

期望 adataframe在两者中都包含列,dataframes并且NA对于彼此缺少的列都有。

+----+-----+-----+-----+
| x0 |  x1 |  x2 |  x3 |
+----+-----+-----+-----+

可以使用rbind函数,但是这需要相同的列在两个数据框中。

标签: rdataframemerge

解决方案


也许rbind.fill()plyr可以帮助:

library(plyr)
#Data
first <- data.frame(x0=1:5,
                    x1=rnorm(5),
                    x2=c("M","F","M","F","F"))

second <- data.frame(x0=10:14,
                     x1=rnorm(5),
                     x3=c("M","F","M","F","F"))
#Join
third <- rbind.fill(first,second)

   x0          x1   x2   x3
1   1  0.42646422    M <NA>
2   2 -0.29507148    F <NA>
3   3  0.89512566    M <NA>
4   4  0.87813349    F <NA>
5   5  0.82158108    F <NA>
6  10  0.68864025 <NA>    M
7  11  0.55391765 <NA>    F
8  12 -0.06191171 <NA>    M
9  13 -0.30596266 <NA>    F
10 14 -0.38047100 <NA>    F

推荐阅读