【发布时间】:2014-04-07 08:23:11
【问题描述】:
假设我有一个矩阵,mat。
mat <- matrix(1:5, nrow = 10, ncol = 3, byrow = TRUE)
而且我有某种想要应用的功能,在本例中是按列。
getRMSE <- function(true, est) {
sqrt(mean((true - est)^2))
}
(这个函数只是最近的例子,但我至少有 5 次遇到同样的难题。)
如果你想在一个矩阵上应用一个函数,你可以使用 apply。但是,如果您想在 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))
也不起作用,我认为至少有一个机会。
【问题讨论】: