1

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

这是我的出现矩阵,类似于交易矩阵。A0代表不发生,而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   

可以通过检查一对事件一起发生的次数来总结共现。这可以通过计算两列有多少次为 1 来计算任意两列。

    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 observation

4

1 回答 1

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
于 2013-10-08T18:10:19.213 回答