У меня есть фрейм данных с числовыми и упорядоченными столбцами факторов. У меня много ценностей 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)
Конечно, это работает неправильно.
Я хочу, чтобы порядок уровней сохранялся и уровень «Нет ответа» добавлялся на последнее место.