在R中创建相关矩阵

时间:2013-09-29 22:44:00

标签: r matrix

我有一个包含500行(二进制分数)和120列的矩阵的文件。该文件是一个0和1的简单矩阵。

>file

00010010101010
01001010100101
00101001010001
11110101001010

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

实施例

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

我能够为两行做到这一点但是如何为所有行创建500x500相关矩阵。有人可以帮忙吗?感谢。

1 个答案:

答案 0 :(得分: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中函数的名称,你应该避免将它用于你自己的变量。