计算 THE RMSE 的均值函数有一个na.rm
参数,您可以像这样使用它:
RMSE <- function (pred,obs,na.rm=FALSE){
sqrt(mean((pred - obs)^2, na.rm = na.rm))
}
na.rm 参数可用于模拟 na.or.complete 行为,因为在几乎情况下,使用 na.or.complete 选项等效于从原始对中删除 NA 值。例如 :
swM <- swiss[,1:2]
swM[1,2] <- NA
swM[1,1] <- NA
identical(cor(swM, use = "na.or.complete"),
cor(na.exclude(swM), use = "all"))
TRUE
使用 RMSE
swM[1,2] <- NA
swM[1,1] <- NA
identical(RMSE(swM[,1],swM[,2],na.rm=T),
RMSE(swM[,1],swM[,2],na.rm=F))
FALSE
编辑将非常小的值设置为 NA
我不知道您如何存储数据。但我假设你有一个带有变量 x 的 data.table。你可以这样做:
dat$x[dat$x <= -3.4e+38] <- NA