Como substituo códigos numéricos por rótulos de valor de uma tabela de pesquisa?

Esta questão está relacionada comessa questão, mas não exatamente o mesmo.

Digamos que eu tenha esse quadro de dados

<code>df <- data.frame(
                id = c(1:6),
                profession = c(1, 5, 4, NA, 0, 5))
</code>

e uma string com informações legíveis sobre os códigos de profissão. Dizer,

<code>profession.code <- c(
                     Optometrists=1, Accountants=2, Veterinarians=3, 
                     `Financial analysts`=4,  Nurses=5)
</code>

Agora, estou procurando a maneira mais fácil de substituir os valores emdf$profession com o texto encontrado emprofession.code. De preferência sem o uso de bibliotecas especiais, a menos que reduza o código de forma significativa.

Eu gostaria que meu resultado final fosse

<code>df <- data.frame(
                id = c(1:6),
                profession = c("Optometrists", "Nurses", 
                "Financial analysts", NA, 0, "Nurses"))
</code>

Qualquer ajuda seria muito apreciada.

Obrigado, Eric

questionAnswers(3)

yourAnswerToTheQuestion