2012-10-10 97 views
1

我想計算相關矩陣P,其中每個P [i,j]是矩陣Data中第i行和第j列的相關係數。例如計算矩陣的相關矩陣與應用

Data <- matrix(rnorm(500),50,10) 
    P <- matrix(0,50,50) 
    for (i in 1:50) 
    for(j in 1:50) 
     P[i,j] <- cor(Data[i,],Data[j,]) 

但是我怎樣才能使用apply或類似這個命令來計算這樣的相關性。

+0

如上所述,由於您的行和列的長度不相等,所以請求無法滿足。 –

回答

5

你可以使用cor()數據幀或矩陣上獲得所有列對之間的相關性的相關矩陣:

cor(t(Data)) 

從你的問題和代碼,目前尚不清楚,如果你想對所有的相關性成對的行或行與列之間的相關性,但由於矩陣不是正方形,我假設第一個。

+0

哦,天啊,它有一個非常簡單的解決方案謝謝Sacha。但我有一個問題來自你。如何通過應用使用矩陣的所有行對的兩個變量函數? – morteza

+0

我有一個類似的問題,而回(http://stackoverflow.com/q/5233308/567015)。最簡單的方法是使用「外部」,例如'外(1:nrow(數據),1:nrow(數據),功能(I,J)SOMEFUNCTION(數據[I,J],數據[J,]))'。然而,這很慢,通常你會發現有一個更簡單的方法來做到這一點。 –

+0

好的,我知道。但我認爲系統時間較短,還有另一種計算方式,如應用。我找到它並寄給你。 Re謝謝Sacha – morteza