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
A solution is to order var1 and var2 (the ordering is alphabetical) then use unique. I did this with data.table out of convenience, but it could be done with dplyr no problem.
library(data.table)
dt = data.table(var1 = c("A", "B", "A", "C"), var2 = c("B", "A", "C", "A"), cor = c(0.6 ,0.6, 0.4, 0.4))
dt[, var1_alt := min(var1, var2), by = 1:nrow(dt)]
dt[, var2_alt := max(var1, var2), by = 1:nrow(dt)]
dt = unique(dt[, .(var1 = var1_alt, var2 = var2_alt, cor)])