【发布时间】:2019-01-24 01:39:54
【问题描述】:
我有一个 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
【问题讨论】:
-
您的问题不清楚。我在
df中看不到c。它只有n和x -
c 是 x 值之一。它是 x 中同一行中不同字母出现频率的频率表
-
你的意思是问题的粗体部分中的 df$x 而不是 df$c 吗?
-
大家好,你是对的!我的意思是
df$x。对困惑感到抱歉。我把它改成了有意义的。
标签: r matrix adjacency-matrix