memiscパッケージのrecodeのバグ
追記(2011/11/07):memisc(0.95-35)で修正されました。
memisc(0.95-33)のrecode関数にはバグがある模様。
> library(memisc) > x <- 1:100 > y <- recode(x, "low" <- range(min, 30), "hi" <- range(31, max)) > x[1:10*3] <- NA > z <- recode(x, "low" <- range(min, 30), "hi" <- range(31, max)) 以下にエラー if (any(nevtrue)) { : TRUE/FALSE が必要なところが欠損値です
NAが含まれる数値ベクトルを渡すとエラーが出る。
以下のように,NAに一時的に数値を割り当てて対処するのがたぶん一番楽。
> x[is.na(x)] <- 999 > z <- recode(x, "low" <- range(min, 30), "hi" <- range(31, 100), + otherwise=NA) > z [1] low low <NA> low low <NA> low low <NA> low low <NA> low low [15] <NA> low low <NA> low low <NA> low low <NA> low low <NA> low [29] low <NA> hi hi hi hi hi hi hi hi hi hi hi hi [43] hi hi hi hi hi hi hi hi hi hi hi hi hi hi [57] hi hi hi hi hi hi hi hi hi hi hi hi hi hi [71] hi hi hi hi hi hi hi hi hi hi hi hi hi hi [85] hi hi hi hi hi hi hi hi hi hi hi hi hi hi [99] hi hi Levels: low hi
バク報告したいけど英語メールがめんどくさい…。
でも,memisc推進の妨げになるので近いうちにします。