To find the row-wise correlation of two matrices X and Y, the output should have a correlation value for row 1 of X and row 1 of Y, ..., hence in total ten values (because there are ten rows):
X <- matrix(rnorm(2000), nrow=10) Y <- matrix(rnorm(2000), nrow=10) sapply(1:10, function(row) cor(X[row,], Y[row,]))
Now, how should I apply this function to two lists (containing around 50 dataframes each)?
Consider list A has dataframes $1, $2, $3... and so on and list B has similar number of dataframes $1, $2, $3. So the function should be applied to listA$1,listB$1
and listA$2,listB$2
... and so on for other dataframes in the list. In the end I will have ten values in case of comparison 1 (listA$1
and listB$1
) and for others as well.
Could this be done using "lapply"?
You seem to be looking for mapply
. Here's an example:
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With