仅使用R中表A的列合并表A和B

时间:2019-04-02 10:30:46

标签: r dplyr

我有2个数据框A和B,其中A中的列是B中列的子集,如下所示

表A:

[A] [B] [C]
 1   2   3
 4   5   6

表B:

[A] [B] [C] [D]
 7   8   9  10
11  12  13  14

我希望得到这样的输出:

[A] [B] [C]
 1   2   3
 4   5   6
 7   8   9
11  12  13

我应该使用哪种代码/函数直接获得这种结果?

我尝试了rbind.fill,但是从A和B获得了所有不同的列,以后可以删除其中的一些列。 但是,我的实际数据包含太多列,以至于简单地键入所有不需要的列并不是最佳选择。

如果一口气尝试获得我想要的结果确实是不明智的,那么欢迎其他快速解决方法= D。谢谢。

2 个答案:

答案 0 :(得分:1)

我们可以在nudge_y = 0.1中找到B中的列,然后在A中找到这些列。

rbind

如果cols <- names(B)[names(B) %in% names(A)] rbind(A, B[cols]) # A B C #1 1 2 3 #2 4 5 6 #3 7 8 9 #4 11 12 13 A可以具有不同的列,我们可以使用B查找公用列

intersect

数据

cols <- intersect(names(B), names(A))
rbind(A[cols], B[cols])

答案 1 :(得分:0)

如果您使用的是 tidyverse ,则可以执行以下操作:

library(tidyverse)

bind_rows(a, b[names(a)])

bind_rows(a, b %>% select(names(a))

生成数据

a <- tribble(
    ~A, ~B, ~C,
    1, 2, 3,
    4, 5, 6,
)

b <- tribble(
    ~A, ~B, ~C, ~D,
    7,8,9,10,
    11,12,13,14
)