2013-09-25 35 views
16

功能我想找到在行的相關性:將兩個清單

X <- matrix(rnorm(2000), nrow=10) 
Y <- matrix(rnorm(2000), nrow=10) 

我想找到下列方式A的每一行和B之間的相關性。例如應該有X的第1行的相關值和行Y. 1同樣申請所有行會有總共十個值(因爲有十行)

sapply(1:10, function(row) cor(X[row,], Y[row,])) 

現在,我應該如何將此函數應用於兩個列表(每個列表包含大約50個數據幀)。考慮到,列表A具有數據框$ 1,$ 2,$ 3 ...等等,而列表B具有相似數量的數據框$ 1,$ 2,$ 3。因此,該函數應該應用於列表中的其他數據框的listA $ 1和listB $ 1和listA $ 2,listB $ 2等。最後,我將有十個值相比1(listA的$ 1數組listB $ 1)的情況下,與他人以及..

難道用「lapply」來完成。任何幫助,將不勝感激。

回答

25

你似乎在尋找mapply。這裏有一個例子:

listA <- list(matrix(rnorm(2000), nrow=10), 
       matrix(rnorm(2000), nrow=10)) 
listB <- list(matrix(rnorm(2000), nrow=10), 
       matrix(rnorm(2000), nrow=10)) 
mapply(function(X,Y) { 
    sapply(1:10, function(row) cor(X[row,], Y[row,])) 
    }, X=listA, Y=listB)