我有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。谢谢。
答案 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
)