How do I select all unique combinations of two columns in an R data frame?

后端 未结 5 1772
一个人的身影
一个人的身影 2020-12-18 15:48

I have a correlation matrix that I put in a dataframe like so:

row | var1 | var2 | cor
1   | A    | B    | 0.6
2   | B    | A    | 0.6
3   | A    | C    | 0         


        
5条回答
  •  不知归路
    2020-12-18 16:32

    A dplyr possibility could be:

    df %>%
     group_by(grp = paste0(pmin(var1, var2), pmax(var1, var2))) %>%
     slice(1) %>%
     ungroup() %>%
     select(-grp)
    
        row var1  var2    cor
         
    1     1 A     B       0.6
    2     3 A     C       0.4
    

    Or:

    df %>%
     group_by(grp = paste0(pmin(var1, var2), pmax(var1, var2))) %>%
     filter(row_number() == min(row_number())) %>%
     ungroup() %>%
     select(-grp)
    

    Or:

    df %>%
     group_by(grp = paste0(pmin(var1, var2), pmax(var1, var2))) %>%
     summarise_all(list(first)) %>%
     ungroup() %>%
     select(-grp)
    

提交回复
热议问题