我正在使用调查数据(行=受访者; col =意见),并尝试在受访者之间创建一种单模邻接矩阵,以测量他们为每个dyad网络给出相同答案的次数。具体来说,
affiliation_matrix <- matrix(c(
0,1,0,
1,0,0,
0,1,1
)
,nrow=3
,ncol=3,
byrow=TRUE)
dimnames(affiliation_matrix) <- list(
c("Alyssa", "Brad", "Carla"),
c("opinion1", "opinion2", "opinion3")
)
affiliation_matrix
在上面的3x3矩阵示例中,我想创建一个看起来像矩阵的矩阵
ideal_matrix <- matrix(c(
1,1,2,
1,1,0,
2,0,2
)
,nrow=3
,ncol=3,
byrow=TRUE)
dimnames(ideal_matrix) <- list(
c("Alyssa", "Brad", "Carla"),
c("Alyssa", "Brad", "Carla")
)
所以在Alyssa和Carla之间,他们的联系得到了2,因为他们对Opinion1和Opinion2的回答相同。同样,Alyssa和Brad之间的联系也为1,因为他们在意见3中都回答了0。
我正在查找代码get.adjacency()和bipartite.projection,但是这似乎只处理人与事件网络,其中只有1的值被视为匹配项。是否有一个R包可以让我做到这一点,或者我需要手动创建自己的循环(如果可以的话……怎么做?)?
谢谢!
可能有一个我不知道的现成的解决方案。但是,在这种特殊的(二进制)情况下,可以重新编码矩阵,将每个矩阵乘以其转置,最后将它们加在一起: