我有一個缺失值的因素。我知道這個因素值取決於幾個日期的組合。使用日期的推算因子值
雖然我有一些麻煩得到這個工作。似乎這兩個類都很棘手,尤其是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)
看來k近鄰不會買賬:
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'對因子變量有效。檢查[此鏈接](http://www.inside-r.org/packages/cran/hmisc/docs/aregImpute) –
@JosephWood這似乎工作,將其添加爲答案,如果你喜歡 –
我不確定關於日期。我猜,他們會自動轉換爲因素。另外,你可以從'Hmisc'查看'transcan'。 –