Учитывая следующие примерные данные:
library(Metrics)
obs=data.frame(replicate(10,runif(100)))
pred=data.frame(replicate(10,runif(100)))
obs1=as.data.frame(lapply(obs, function(cc) cc[ sample(c(TRUE, NA), prob = c(0.85, 0.15), size = length(cc), replace = TRUE) ]))
pred1=as.data.frame(lapply(pred, function(cc) cc[ sample(c(TRUE, NA), prob = c(0.85, 0.15), size = length(cc), replace = TRUE) ]))
pred1[,1]=NA
result=mapply(function(x, y) {if(all(is.na(y))) NA else mae(x, y, ), mse(x,y),rmse(x,y),se(x,y)
}, obs1,pred1,SIMPLIFY = F,USE.NAMES = TRUE)
Я хочу вычислить, скажем, mae(obs1[,1],pred1[,1])
и т. д. через mapply
. Как я могу сделать то же самое для всех других функций с помощью одного вызова, используя base R functions
или plyr
?
В выводе имена строк result
являются column names
либо obs1
, либо pred1
, а имена столбцов mae, mse,rmse,se
и т. д.