R的randomForest包中的缺失值错误
Posted
技术标签:
【中文标题】R的randomForest包中的缺失值错误【英文标题】:Missing value error in the randomForest package of R 【发布时间】:2015-11-20 15:48:06 【问题描述】:我正在使用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(list(as.factor(outcome) = c(2L, 2L, 1L, : 对象中的缺失值
na.roughfix 插补应该已经解决了这个问题(我之前已经让它工作了,research on here shows that it should work),对吧?有什么建议?
【问题讨论】:
【参考方案1】:您的lapply
行没有达到您的预期。结果不再是一个数据框,只是一个列表。因此,na.roughfix
的 data.frame
方法没有被调度,只是默认方法,如果它不是原子的,它只会返回它的第一个参数(你的列表显然不是)。
将每列转换为数字但保留数据框属性的有点偷偷摸摸的方法是:
data[] <- lapply(data,as.numeric)
或者,您可以简单地通过as.data.frame
将其转换回来。
【讨论】:
感谢您的回复。我之前实际上已经尝试过as.data.frame
解决方案。我重试了,也给data[] <- lapply(data,as.numeric)
运行了一次,但仍然出现同样的错误。
@bencrosier 好吧,如果您需要更具体的帮助,您必须提供一个可重复的示例。以上是关于R的randomForest包中的缺失值错误的主要内容,如果未能解决你的问题,请参考以下文章
if (any(co)) 中的错误:需要 TRUE/FALSE 的缺失值
R语言自定义函数计算dataframe每列中的缺失值NA的个数缺失值问题及其填充示例
R语言使用isna函数查看列表和dataframe中是否包含缺失值将dataframe中数据列中的异常值标注为缺失值NA使用na.omit函数删除dataframe中包含缺失值NA的数据行