【问题标题】:Error in nodes_mis[, i] : incorrect number of dimensions in the mice package using meth="rf"nodes_mis[, i] 中的错误:使用 meth="rf" 的 mouse 包中的维数不正确
【发布时间】:2026-01-25 00:20:02
【问题描述】:

我是 R 的新手。 我正在尝试使用随机森林方法作为插补算法来测试mice 包的缺失插补:

library(mice)
data <- matrix(c(1.0, 10.5, 1.5, 13.2, 1.8, 8.0, 1.7, 15.0, 23, 40.0, 2.0, 21.0, 3.3, 38.0, 4.5, -2.3, NA, -2.4),nrow=9,ncol=2, byrow=TRUE)
impObject <- mice(as.data.frame(data),m=1,meth='rf',printFlag=FALSE)
completedData <- complete(impObject,1)
print(completedData)

上面的代码已经给了我错误:Error in nodes_mis[, i] : incorrect number of dimensions

如果我使用其他插补方法,或者如果我使用稍微修改过的输入数据(比如说data &lt;- matrix(c(1.0, 10.5, 1.5, 13.2, 1.8, 8.0, 1.7, NA, 23, 40.0, 2.0, 21.0, 3.3, 38.0, 4.5, -2.3, NA, -2.4),nrow=9,ncol=2, byrow=TRUE)),它就可以工作。 它是实现小鼠 rf 方法的包中的一个错误(顺便说一句,我找不到它的名字,它确实要求我安装它,但我无法取回它的名字)? 最终,您是否会报告 R 包中的错误?

【问题讨论】:

  • 通过示例显示,我没有收到任何错误
  • 如何在 R 中获取已安装的 lib 版本?
  • 我使用packageVersion('mice')# [1] ‘3.13.0’ 进行测试
  • @akrun:我得到了&gt; packageVersion('mice') #[1] ‘3.14.0’。但是我相信问题出在为老鼠实现射频模型的包中,但我找不到它的名字....
  • 我最终在老鼠包github.com/amices/mice/issues/447#issuecomment-981540056中填写了一份错误报告,正在调查中......

标签: r random-forest missing-data imputation r-mice


【解决方案1】:

这个问题已经解决了,讨论here

简而言之,在mice 3.14.0 版中,mice:::mice.impute.rfrfPackage 参数的默认值从randomForest 切换到ranger(请参阅here)。当只有一个缺失值时,对其中一个矩阵进行子集化时出现问题。这已修复(请参阅here)并在版本 3.14.2 中实施。

【讨论】: