R的randomForest包中缺少值错误

时间:2015-08-26 14:28:48

标签: r machine-learning random-forest missing-data

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

data <- read.csv("data.csv")
data <- lapply(data, as.numeric)
data <- na.roughfix(data) 

然后我运行模型:

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

我收到以下错误:

  

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

na.roughfix估算应该已经解决了这个问题(我之前已经开始工作了research on here shows that it should work),对吧?有什么建议?

1 个答案:

答案 0 :(得分:5)

您的lapply行并没有达到您的预期。结果不再是数据框,只是一个列表。因此,data.frame的{​​{1}}方法不会被调度,只是默认方法只返回它的第一个参数,如果它不是原子的(你的列表)显然不是。

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

na.roughfix

或者,您只需通过data[] <- lapply(data,as.numeric) 将其转换回来。