2013-09-29 172 views
1

我有一個包含500行(二進制分數)和120列矩陣的文件。該文件是0和1的簡單矩陣。在R中創建相關矩陣

>file 

00010010101010 
01001010100101 
00101001010001 
11110101001010 

我正在寫一個函數,它使用特殊的相關公式來查找行之間的相關性。它將兩個向量行作爲輸入fn(row1,row2)。例如。 row1和row2並計算此特殊關聯。

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

我能做到這一點的兩行,但我怎麼能爲所有行創建一個500×500相關矩陣。有人可以幫助這個嗎?謝謝。

回答

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中函數的名稱,您應該避免將它用於您自己的變量。

+0

謝謝,我會試試看看會發生什麼。 fn計算預先指定的四分相關。所以我想爲數據框中的所有行變量創建一個500x500的相關矩陣。我會試試看。 – CadisEtRama