R: Aplicar función a matriz con elementos de vector como argumento
Supongamos que quiero aplicar una función a cada fila de una matriz. Uno de los argumentos de la función toma un vector. Me gustaría aplicar el primer elemento del vector a la primera fila, el segundo elemento a la segunda fila, etc.
Por ejemplo:
set.seed(123)
df<-matrix(runif(100), ncol=10)
var2 <- c(1:10)
MYFUNC <- function(x, Var=NA){
sum(x)/Var
}
Intenté esto:
apply(df, 1, function(x) MYFUNC(x, Var=var2))
Pero eso me da una matriz de 10x10 con la función aplicada a cada combinación de fila y Var, mientras que solo estoy interesado en los elementos diagonales. También miré en elmapply
función, pero no estoy seguro de cómo aplicarlo en este caso.
Cualquier ayuda sería muy apreciada.