R.只加入重复一次

Art*_*tem 2 merge join r

我需要帮助才能通过一个带有重复项的密钥连接两个数据帧.我想只为每个副本合并一次,我不能这样做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)

Moo*_*per 5

保留您的代码,只需添加:

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)