studio - superponer graficas en r
¿Aplicando una función a dos listas? (1)
Para encontrar la correlación por filas de dos matrices X e Y, la salida debe tener un valor de correlación para la fila 1 de X y la fila 1 de Y, ..., por lo tanto, en el total de diez valores (porque hay diez filas):
X <- matrix(rnorm(2000), nrow=10)
Y <- matrix(rnorm(2000), nrow=10)
sapply(1:10, function(row) cor(X[row,], Y[row,]))
Ahora, ¿cómo debo aplicar esta función a dos listas (que contienen aproximadamente 50 marcos de datos cada una)?
Considere que la lista A tiene marcos de datos $ 1, $ 2, $ 3 ... y así sucesivamente, y la lista B tiene un número similar de marcos de datos $ 1, $ 2, $ 3. Por lo tanto, la función debe aplicarse a la listA$1,listB$1
y listA$2,listB$2
... y así sucesivamente para otros marcos de datos en la lista. Al final tendré diez valores en el caso de la comparación 1 ( listA$1
y lista listB$1
) y para otros también.
¿Podría hacerse esto usando "lapply"?
Pareces estar buscando mapply
. Aquí hay un ejemplo:
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)