【问题标题】:How to convert occurrence matrix to co-occurrence matrix [duplicate]如何将出现矩阵转换为共现矩阵[重复]
【发布时间】:2019-01-30 11:54:01
【问题描述】:

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

可以通过检查一对事件一起发生的次数来总结同时发生。这可以通过计算任意两列有多少次为 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 observations

【问题讨论】:

    标签: python r


    【解决方案1】:

    使用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多