df.long = data.frame(one=c('a','a','a','b','b','c'),
                     two=c('b','c','d','c','d','d'),
                     value=c(1,2,3,4,5,6) )
df.long
##   one two value
## 1   a   b     1
## 2   a   c     2
## 3   a   d     3
## 4   b   c     4
## 5   b   d     5
## 6   c   d     6
v <- unique(c(df.long$one, df.long$two))
mx <- sapply(v, function(x) {
  sapply(v, function(y) {
    df.long[df.long$one %in% c(x, y) & df.long$two %in% c(x, y), "value"]
  })
})
diag(mx) <- 0
mx
##   a b c d
## a 0 1 2 3
## b 1 0 4 5
## c 2 4 0 6
## d 3 5 6 0
#ref https://stackoverflow.com/questions/31095422/reconstruct-symmetric-matrix-from-values-in-long-form