Usando apply com um argumento de função diferente para a avaliação de cada elemento

Digamos que eu tenho uma matriz, esteira.

mat <- matrix(1:5, nrow = 10, ncol = 3, byrow = TRUE)

E eu tenho algum tipo de função que quero aplicar, neste caso por coluna.

getRMSE <- function(true, est) {
    sqrt(mean((true - est)^2))
}

(Esta função é apenas o exemplo mais recente, mas eu tive esse mesmo enigma exatamente pelo menos mais cinco vezes.)

Se você deseja aplicar uma função sobre uma matriz, use apply. Mas e se você quiser aplicar uma função sobre uma matriz com valores diferentes para 'x' na aplicação?

Nesse caso, o objetivo seria que apply realizasse o equivalente a isso:

getRMSE(mat[,1], 1)
getRMSE(mat[,2], 2)
getRMSE(mat[,3], 3)

Mas sempre encontro problemas ao fornecer um vetor como argumento suplementar para a função. Obviamente

apply(mat, 2, getRMSE, c(1,2,3))

não vai funcionar, porque também reciclará os números nas colunas. Mas

apply(mat, 2, getRMSE, rep(c(1,2,3), 25)) 

também não funciona, o que eu pensei que tinha pelo menos uma chance.

questionAnswers(2)

yourAnswerToTheQuestion