merge(all.x = TRUE)
只保留第一个数据框中的观测
x <- data.frame(matrix("x", ncol = 10, nrow = 3))
colnames(x) <- letters[1:10]
x
#> a b c d e f g h i j
#> 1 x x x x x x x x x x
#> 2 x x x x x x x x x x
#> 3 x x x x x x x x x x
y <- data.frame(matrix("y", ncol = 6, nrow = 4))
colnames(y) <- letters[7:12]
y
#> g h i j k l
#> 1 y y y y y y
#> 2 y y y y y y
#> 3 y y y y y y
#> 4 y y y y y y
merge(x, y, by = letters[7:10], all.x = TRUE)[, union(names(x), names(y))]
#> a b c d e f g h i j k l
#> 1 x x x x x x x x x x <NA> <NA>
#> 2 x x x x x x x x x x <NA> <NA>
#> 3 x x x x x x x x x x <NA> <NA>
<sup>Created on 2022-09-20 with reprex v2.0.2</sup>