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