我知道,我知道....另一个合并的 Df 问题,请听我说,因为我已经搜索了关于这个问题的答案,但没有出现。
我正在合并两个 Df,一个比另一个小,并进行左合并,以将较长的 DF 与较小的 DF 相匹配。
这很有效,除了一个问题,当右侧(较长)df 有重复项时,行会添加到左侧(较小)df 中。
一个例子:
Row<-c("a","b","c","d","e")
Data<-(1:5)
df1<-data.frame(Row,Data)
Row2<-c("a","b","b","c","d","e","f","g","h")
Data2<-(1:9)
df2<-data.frame(Row2,Data2)
names(df2)<-c("Row","Data2")
DATA<-merge(x = df1, y = df2, by = "Row", all.x = TRUE)
>DATA
Row Data Data2
1 a 1 1
2 b 2 2
3 b 2 3
4 c 3 4
5 d 4 5
6 e 5 6
Run Code Online (Sandbox Code Playgroud)
看到额外的“b”行?,这就是我想要摆脱的,我想保留左边的 DF,但非常严格,就像 DF1 中有 5 行,合并时我希望只有 5行。
像这样...
Row Data Data2
1 a 1 1
2 b 2 2
3 c 3 4
4 d 4 5
5 e 5 6
Run Code Online (Sandbox Code Playgroud)
它只需要第一场比赛并继续前进。
我意识到合并功能只是在这里完成它的工作,那么还有另一种方法可以做到这一点以获得我的预期结果吗?或者是否应该进行合并后的修改。
感谢您的帮助和时间。
我们可以duplicated按如下方式使用该函数:
DATA[!duplicated(DATA$Row),]
Row Data Data2
1 a 1 1
2 b 2 2
4 c 3 4
5 d 4 5
6 e 5 6
Run Code Online (Sandbox Code Playgroud)