How to merge two data frames on common columns in R with sum of others?

前端 未结 3 1071
暗喜
暗喜 2020-12-02 23:02

R Version 2.11.1 32-bit on Windows 7

I got two data sets: data_A and data_B:

data_A

USER_A USER_B ACTION
1      11     0.3
1      13     0.         


        
3条回答
  •  旧巷少年郎
    2020-12-02 23:44

    I wrote the package safejoin which solves this very succintly :

    # devtools::install_github("moodymudskipper/safejoin")
    library(safejoin)
    safe_left_join(data_A,data_B, by = c("USER_A", "USER_B"), 
                   conflict = ~ .x+ ifelse(is.na(.y),0,.y))
    #   USER_A USER_B ACTION
    # 1      1     11   0.30
    # 2      1     13   0.42
    # 3      1     16   0.63
    # 4      1     17   0.26
    # 5      2     11   0.39
    # 6      2     14   0.28
    

    In case of conflict, the function fed to the conflict argument will be used on pairs of conflicting columns

提交回复
热议问题