假设我有一个矩阵,垫子。
mat <- matrix(1:5, nrow = 10, ncol = 3, byrow = TRUE)
我有某种想要应用的函数,在本例中按列应用。
getRMSE <- function(true, est) {
sqrt(mean((true - est)^2))
}
(这个函数只是最近的例子,但我已经遇到过同样的难题至少 5 次了。)
如果你想在矩阵上应用函数,可以使用 apply。但是,如果您想将函数应用于应用中“x”具有不同值的矩阵,该怎么办?
在这种情况下,目标是 apply 将执行与此等效的操作:
getRMSE(mat[,1], 1)
getRMSE(mat[,2], 2)
getRMSE(mat[,3], 3)
但当我将向量作为函数的补充参数时,我总是遇到问题。明显地
apply(mat, 2, getRMSE, c(1,2,3))
不起作用,因为它也会回收列中的数字。但
apply(mat, 2, getRMSE, rep(c(1,2,3), 25))
也不起作用,我认为至少有一个机会。