如何将出现矩阵转换为共生矩阵

时间:2013-10-08 16:30:53

标签: python r

我需要将出现矩阵(在文件中,比如infile.txt)转换为共生矩阵,如下所示。 r中是否有任何内置函数可以做同样的事情。我可以使用C风格编程来做到这一点,但我确信必须有一些功能来执行相同的操作。

这是我的出现矩阵,类似于事务矩阵。 0表示不发生,1表示事件发生。

a   b   c   d   
0   1   0   1   
0   1   1   1   
1   0   0   1   
1   1   1   0   
1   0   0   0   

可以通过检查一对事件一起发生的次数来概括共现。这可以通过计算两列的总数来计算任意两列来找到。

    a   b   c   d
a   0   1   1   1
b   1   0   2   2
c   1   2   0   1
d   1   2   1   0

编辑: 正如Jiber所指出的,类似的问题在这里:Create a co-occurrence matrix from dummy-coded observations

1 个答案:

答案 0 :(得分:0)

使用crossprod

dt<-as.matrix(read.table(text="a   b   c   d   
0   1   0   1   
0   1   1   1   
1   0   0   1   
1   1   1   0   
1   0   0   0 ",header=T))

x<-crossprod(dt)
diag(x)<-0
x
##   a b c d
## a 0 1 1 1
## b 1 0 2 2
## c 1 2 0 1
## d 1 2 1 0