错误:列中缺少数据:使用ranger包运行随机森林回归时弹出

xienkqul  于 2023-01-22  发布在  其他
关注(0)|答案(1)|浏览(227)

我尝试使用R中的ranger包实现随机森林(RF)回归,但我收到以下错误:Error: Missing data in columns: poppop 是我的自变量)。
作为参考,当使用randomForest包时,我可以使用na.action = na.omit函数排除 NA 值,但在ranger中我不能这样做。

library(terra)
s <- rast(system.file("ex/logo.tif", package="terra")) [[1:2]] 
names(s) = c("ntl", "covar")
s[10:20, ] <- NA
 
library(ranger)
m <- ranger(ntl~., data=as.data.frame(s, na.rm=TRUE), mtry=1)
p <- predict(s, m)
#Error: Missing data in columns: covar.
#In addition: Warning message:
#In lapply(r, as.numeric) : NAs introduced by coercion
2g32fytz

2g32fytz1#

您可以使用na.rm=TRUE

library(terra)
#terra 1.6.53
s <- rast(system.file("ex/logo.tif", package="terra")) [[1:2]] 
names(s) = c("ntl", "covar")
s[10:20, ] <- NA

library(ranger)
m <- ranger(ntl~., data=as.data.frame(s, na.rm=TRUE), mtry=1)
p <- predict(s, m, na.rm=TRUE)

p
#class       : SpatRaster 
#dimensions  : 77, 101, 1  (nrow, ncol, nlyr)
#resolution  : 1, 1  (x, y)
#extent      : 0, 101, 0, 77  (xmin, xmax, ymin, ymax)
#coord. ref. : Cartesian (Meter) 
#source(s)   : memory
#name        :  prediction 
#min value   :   0.2525767 
#max value   : 254.6400884

相关问题