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

后端 未结 5 1771
一个人的身影
一个人的身影 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:26

    Here's one way with tidyverse -

    dat2 <- dat %>% 
      filter(!duplicated(paste0(pmax(var1, var2), pmin(var1, var2))))
    
    
    # A tibble: 2 x 3
      var1  var2    cor
        
    1 A     B     0.600
    2 A     C     0.400
    

    Data -

    dat <- data_frame(
      var1 = LETTERS[c(1,2,1,3)],
      var2 = LETTERS[c(2,1,3,1)],
      cor = c(0.6,0.6,0.4,0.4))
    

    Note: cleaned up the logic thanks to @tmfmnk

提交回复
热议问题