假设我想合并两个data.frames,但有些列是冗余的(相同).我如何合并这些data.frames但删除冗余列?
X1 = data.frame(id = c("a","b","c"), same = c(1,2,3), different1 = c(4,5,6))
X2 = data.frame(id = c("b","c","a"), same = c(2,3,1), different2 = c(7,8,9))
merge(X1,X2, by="id", all = TRUE, sort = FALSE)
id same.x different1 same.y different2
1 a 1 4 1 9
2 b 2 5 2 7
3 c 3 6 3 8
Run Code Online (Sandbox Code Playgroud)
但是,我如何得到不同的1和不同的2列?
id same different1 different2
1 a 1 4 9
2 b 2 5 7
3 c 3 6 8
Run Code Online (Sandbox Code Playgroud)
您可以在by参数中包含相同的列.默认是by=intersect(names(x), names(y)).尝试merge(X1, X2)(它是一样的merge(X1, X2, by=c("id", "same"))):
merge(X1, X2)
# id same different1 different2
#1 a 1 4 9
#2 b 2 5 7
#3 c 3 6 8
Run Code Online (Sandbox Code Playgroud)