我有以下数据框
id channel
1 a
1 b
1 c
2 a
2 c
3 a
我想创建和重叠矩阵。它基本上是一个方阵,行和列标签为 a、b、c,该表中的每个条目显示每个 channel 共有多少个 id。例如在上面的例子中,矩阵看起来像
a b c
a 3 1 2
b 1 1 1
c 2 1 2
非常感谢。
最佳答案
这应该可以解决问题:
df <- data.frame(id=c(1,1,1,2,2,3), channel=letters[c(1,2,3,1,3,1)]) # your data
m <- table(df[[1]], df[[2]]) ## Alternatively: m <- do.call(table, df)
t(m) %*% m
# a b c
# a 3 1 2
# b 1 1 1
# c 2 1 2
关于r - R中的重叠矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11746969/