Adicionar nível extra aos fatores no quadro de dados
Eu tenho um quadro de dados com colunas de fator numérico e ordenado. Eu tenho muitos valores de NA, então nenhum nível é atribuído a eles. Alterei NA para "Sem resposta", mas os níveis das colunas de fator não contêm esse nível, então aqui está como eu comecei, mas não sei como finalizá-lo de uma maneira elegante:
addNoAnswer = function(df) {
factorOrNot = sapply(df, is.factor)
levelsList = lapply(df[, factorOrNot], levels)
levelsList = lapply(levelsList, function(x) c(x, "No Answer"))
...
Existe uma maneira de aplicar diretamente novos níveis às colunas de fator, por exemplo, algo como isto:
df[, factorOrNot] = lapply(df[, factorOrNot], factor, levelsList)
Obviamente, isso não funciona corretamente.
Quero que a ordem dos níveis seja preservada e o nível "Sem resposta" seja adicionado ao último lugar.