Em geral, as funções do R trabalham com a seguinte regra de coerção: o tipo mais específico de dado é transformado no tipo mais genérico. Temos apenas algumas particularidades pára factors. Se você der um unclass(), ou um as.character em um factor, o retorno será um vetor de characteres com todas as ocorrências, a despeito os levels. No entanto, se o seus labels são numéricos, por exemplo, 1, 2 e 3, e você usar um as.numeric, o retorno não serão as ocorrências, e sim o "rank" das ocorrências baseado nos levels.