2013-09-25 19 views
16

पर एक समारोह मैं पंक्ति-वार सह-संबंध को खोजना चाहते थे:लागू करने के दो सूचियों

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

मैं निम्नलिखित तरीके से एक की प्रत्येक पंक्ति और बी के बीच संबंध को खोजने के लिए चाहते हैं। उदाहरण के लिए एक्स की पंक्ति 1 के लिए एक संबंध मूल्य हो और Y के 1 पंक्ति इसी तरह लागू करने के (क्योंकि वहाँ दस पंक्तियों कर रहे हैं) सभी पंक्तियों के लिए वहाँ कुल दस मूल्यों में हो जाएगा

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

अब चाहिए, मैं कैसे करना चाहिए इस फ़ंक्शन को दो सूचियों पर लागू करें (जिसमें लगभग 50 डेटाफ्रेम शामिल हैं)। ध्यान में रखते हुए, सूची ए में डेटाफ्रेम $ 1, $ 2, $ 3 है ... और इसी तरह और सूची बी में समान संख्या में डेटाफ्रेम $ 1, $ 2, $ 3 है। तो सूची सूची में अन्य डेटा फ्रेम के लिए सूची ए $ 1 और listB $ 1 और listA $ 2, listB $ 2 और अन्य पर लागू किया जाना चाहिए। अंत में तुलना 1 (सूची ए $ 1 और सूची बी $ 1) और अन्य लोगों के लिए मेरे पास दस मान होंगे ..

इसे "लापरवाही" का उपयोग करके किया जा सकता है। किसी भी सहायता की सराहना की जाएगी।

उत्तर

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) 
संबंधित मुद्दे