首页 文章

在R中创建相关矩阵

提问于
浏览
1

我有一个文件,其矩阵为500行(二进制分数)和120列 . 该文件是0和1的简单矩阵 .

>file

00010010101010
01001010100101
00101001010001
11110101001010

我正在编写一个函数,它使用特殊的相关公式来查找行之间的这种相关性 . 它需要两个向量行作为输入fn(row1,row2) . 例如 . row1和row2并计算此特殊关联 .

>fn(file[1,], file[2,])
>0.32

我能够两行但是如何为所有行创建500x500相关矩阵 . 有人可以帮忙吗?谢谢 .

1 回答

  • 5

    试试这个:

    corr.mat <- outer(seq_len(nrow(file)), seq_len(nrow(file)),
                      Vectorize(function(i, j) fn(file[i,], file[j,])))
    

    如果这对您的需求来说太慢,可能会有更好的方法,但您必须展示 fn 应该做什么 .

    P.S . : file 是R中函数的名称,你应该避免将它用于你自己的变量 .

相关问题