R的randomForest包中缺少值错误

ben*_*ier 5 r machine-learning missing-data random-forest

我正在使用randomForest包来使用标准流程对二进制结果变量进行分类.我首先必须强制更改所有变量以确保它们是数字,然后用于na.roughfix处理缺失值:

data <- read.csv("data.csv")
data <- lapply(data, as.numeric)
data <- na.roughfix(data) 
Run Code Online (Sandbox Code Playgroud)

然后我运行模型:

model <- randomForest(as.factor(outcome) ~ V1 + V2...+ VN, 
         data=data, 
         importance=TRUE,
         ntree=500)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

na.fail.default中的错误(list(as.factor(outcome)= c(2L,2L,1L,:对象中缺少值)

na.roughfix估算应该已经解决了这个问题(我之前已经开始工作,这里的研究表明它应该工作),对吗?有什么建议?

jor*_*ran 5

你的lapply生产线并没有达到你的预期.结果不再是数据框,只是一个列表.其结果是,该data.framena.roughfix没有派遣,只是刚刚返回它的第一个参数,如果它不是原子(其中列表显然不是)的默认方法.

将每列转换为数字但保留数据框属性的有点偷偷摸摸的方法是:

data[] <- lapply(data,as.numeric)
Run Code Online (Sandbox Code Playgroud)

或者,您可以简单地将其转换回来as.data.frame.