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
Here is yet another tidyverse
partial solution, as I have dropped the row column:
library(tidyverse)
data.cor <-
read.table(
h = T,
sep = "|",
stringsAsFactors = F,
text = "row | var1 | var2 | cor
1 | A | B | 0.6
2 | B | A | 0.6
3 | A | C | 0.4
4 | C | A | 0.4"
) %>%
mutate_if(is.character, ~ trimws(.))
data.cor
#> row var1 var2 cor
#> 1 1 A B 0.6
#> 2 2 B A 0.6
#> 3 3 A C 0.4
#> 4 4 C A 0.4
df <- data.cor %>%
gather(var, val, var1:var2) %>%
distinct(cor, val) %>%
group_by(cor) %>%
mutate(x = paste("var", 1:n(), sep = "")) %>%
spread(x, val) %>%
ungroup()
df
#> # A tibble: 2 x 3
#> cor var1 var2
#>
#> 1 0.4 A C
#> 2 0.6 A B
Created on 2019-04-18 by the reprex package (v0.2.1)