数値列と順序付けられた因子列を含むデータ フレームがあります。私は多くの NA 値を持っているので、レベルは割り当てられません。NA を「無回答」に変更しましたが、因子列のレベルにはそのレベルが含まれていないため、開始方法は次のとおりですが、エレガントな方法で終了する方法がわかりません。
addNoAnswer = function(df) {
factorOrNot = sapply(df, is.factor)
levelsList = lapply(df[, factorOrNot], levels)
levelsList = lapply(levelsList, function(x) c(x, "No Answer"))
...
新しいレベルを因子列に直接適用する方法はありますか。たとえば、次のようになります。
df[, factorOrNot] = lapply(df[, factorOrNot], factor, levelsList)
もちろん、これは正しく動作しません。
レベルの順序を維持し、「無回答」レベルを最後に追加したい。