У меня есть DataFrame, df
.
n
- это столбец, обозначающий количество групп в столбце x
.
x
- это столбец, содержащий разделенные запятыми группы.
df <- data.frame(n = c(2, 3, 2, 2),
x = c("a, b", "a, c, d", "c, d", "d, b"))
> df
n x
2 a, b
3 a, c, d
2 c, d
2 d, b
Я хотел бы преобразовать этот DataFrame в матрицу весов, где имена строк и столбцов являются уникальными значениями групп в df$x
, а элементы представляют количество раз, которое каждая из групппоявляются вместе в df$x
.
Вывод должен выглядеть следующим образом:
m <- matrix(c(0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 2, 1, 1, 2, 0), nrow = 4, ncol = 4)
rownames(m) <- letters[1:4]; colnames(m) <- letters[1:4]
> m
a b c d
a 0 1 1 1
b 1 0 0 1
c 1 0 0 2
d 1 1 2 0