我需要将出现矩阵(在文件中,比如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
答案 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