【发布时间】:2016-07-08 21:34:02
【问题描述】:
我有一个缺少值的因素。我知道这个因子值取决于几个日期的组合。
我在让它工作时遇到了一些麻烦。似乎这两个课程都很棘手,尤其是Date。
举个简单的例子,让我们有 1 个Date 和 1 个因子:
require(VIM)
toimpute <- data.frame(mydates = seq(as.Date("1990-01-01"),as.Date("2000-01-01"),50),
imputeme = c(NA,NA,rep(c("a","b","c"),24)))
toimpute$imputeme <- as.factor(toimpute$imputeme)
看来 kNN 不会这么做:
imputed <- kNN(toimpute,variable = "imputeme")
[.data.frame(data.x, , i) 中的错误:选择了未定义的列
mice 也不喜欢。我认为mice 至少应该与因子一起使用,尽管这条消息说它必须是numeric(也许它允许factor 因变量但只允许numeric 用于自变量?):
imputed <- mice(toimpute)
iter imp variable 1 1 imputeme Error in FUN(newX[, i], ...) : 'x' must be numeric In addition: Warning messages: 1: In var(data[, j], na.rm = TRUE) : Calling var(x) on a factor x is deprecated and will become an error. Use something like 'all(duplicated(x)[-1L])' to test for a constant vector. 2: In FUN(newX[, i], ...) : NAs introduced by coercion
我想如果没有别的办法,我可以做一个随机森林模型来预测具有缺失数据的观察类别,但是如果有一种方法可以使用我想知道的更常见的缺失值函数之一来做到这一点。
【问题讨论】:
-
我认为
aregImpute适用于因子变量。检查this link -
@JosephWood 这似乎有效,如果你愿意,可以添加它作为答案
-
我不确定日期。从文档中我猜它们会自动转换为因子。另外,你可以从
Hmisc查看transcan。
标签: r missing-data