【问题标题】:NA not permitted in predictors. missForest预测变量中不允许使用 NA。森林小姐
【发布时间】:2019-06-22 00:32:43
【问题描述】:

我正在使用missForest 来估算缺失的数据。我将数据作为数据框,当我将其放入 missForest 函数时,我得到了错误:

randomForest.default 中的错误(x = obsX,y = obsY,ntree = ntree,mtry = mtry,:预测变量中不允许 NA

但是,由于我没有预测变量,我只是想推测一下,我不知道这是从哪里来的。下面的代码应该使用示例数据集重现该问题。

下面的代码是我的问题的模拟版本。但是,我已经尝试将 Y 转换为数据框,但我得到了同样的错误。

Y <- prodNA(matrix(as.character(runif(100) > 0.5), nrow=10))
missForest(Y)

【问题讨论】:

  • missForest 据我所知无法处理字符输入。这就是为什么您的示例不起作用的原因。认为您需要数字或因子输入。
  • 我的数据是混合因子和数字格式,我收到“无效的第一个参数”的错误消息。但是,当我的数据类型只有数字时,missForest 可以正常工作。我唯一能找到的就是将它放入missForest中的数据框格式,但即使我这样做它也不起作用。
  • 很难猜出这条新错误消息的问题是什么。如果你提供一个可重复的例子,也许我可以帮助你。

标签: r random-forest imputation


【解决方案1】:

我通过以下方式将所有字符列更改为因子:

df = data.frame(apply(df, 2, as.factor))

这解决了我的错误。
正如 Steffen Moritz 所说,missforest 需要数字或因子输入。

【讨论】:

    【解决方案2】:

    你需要你的变量是因子类型,做转换然后再试一次

    【讨论】:

      猜你喜欢
      • 2013-05-01
      • 2014-02-28
      • 2014-07-20
      • 2019-02-19
      • 2014-08-17
      • 2014-08-07
      • 2018-12-22
      • 2020-08-15
      相关资源
      最近更新 更多