我需要帮助才能通过一个带有重复项的密钥连接两个数据帧.我想只为每个副本合并一次,我不能这样做dplyr::left_join.
例:
ds1 <- data.frame(
id = c(1,1,1,2,2),
V2 = c(5,6,7,5,8)
)
ds2<-data.frame(
id=c(1,2),
Value=c(56,98)
)
ds3<-left_join(ds1, ds2, by="id")
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我有:
# id V2 Value
1 1 5 56
2 1 6 56
3 1 7 56
4 2 5 98
5 2 8 98
Run Code Online (Sandbox Code Playgroud)
但是我需要:
# id V2 Value
1 1 5 56
2 1 6
3 1 7
4 2 5 98
5 2 8
Run Code Online (Sandbox Code Playgroud)
保留您的代码,只需添加:
ds3$Value[duplicated(ds3[c("Value","id")])] <- NA
# id V2 Value
# 1 1 5 56
# 2 1 6 NA
# 3 1 7 NA
# 4 2 5 98
# 5 2 8 NA
Run Code Online (Sandbox Code Playgroud)