根据列名称向数据框添加行,并将NA添加到空列

JMa*_*nte 2 r dataframe

我要问的可能很简单,但我仍然没有想出一个快速简单的方法来做到这一点.

我有数据框,从A1到H12有96列.我将每周开始接收我想在一个数据框中编译的文件.问题是这些文件遗漏了一些列(可能是第一列或中间的任何其他列),因此使合并略微讨厌.

以下是我的样本:

t = data.frame(A1 = c(1,2,3,4,5), B1 = c(7,8,9,10,11), C1 = c(10,2,3,7,8), D1 = c(3,6,7,1,2))
> t
  A1 B1 C1 D1
1  1  7 10  3
2  2  8  2  6
3  3  9  3  7
4  4 10  7  1
5  5 11  8  2
Run Code Online (Sandbox Code Playgroud)

我想要做的是当我收到一个新的数据帧,根据列名添加它,并用NA填充其余部分,如下所示:

new df:
t2 = data.frame(B1 = c(2,4), C1 = c(5,7))
> t2
  B1 C1
1  2  5
2  4  7

merge:
  A1 B1 C1 D1
1  1  7 10  3
2  2  8  2  6
3  3  9  3  7
4  4 10  7  1
5  5 11  8  2
6 NA  2  5 NA
7 NA  4  7 NA
Run Code Online (Sandbox Code Playgroud)

是否有捷径可寻?

谢谢大家,干杯

Tut*_*han 5

你可以用dplyr's bind_rows:

library(dplyr)
bind_rows(t, t2)
Run Code Online (Sandbox Code Playgroud)