Fatores de Recode / relevel data.frame com níveis diferentes
Cada vez que tenho que recodificar algum conjunto de variáveis, tenho em mente a função de recodificação do SPSS. Devo admitir que é bem direto. Há um semelhanterecode
função emcar
pacote, e ele faz o truque, mas vamos supor que eu quero fazer as coisas comfactor
.
eu tenhodata.frame
com várias variáveis com valores variando de 1 a 7. Quero "reverter" os valores das variáveis, substituindo 1s por 7s, 2s por 6s, 3s por 5s etc.factor
função:
# create dummy factor
set.seed(100)
x <- as.factor(round(runif(100,1,7)))
y <- factor(x, levels = rev(levels(x)))
E se eu correr:
> levels(x)
[1] "1" "2" "3" "4" "5" "6" "7"
> levels(y)
[1] "7" "6" "5" "4" "3" "2" "1"
O problema começa quando quero recodificar fatores que não têm níveis iguais. Se algum fator, z, tiver níveisc("1", "3", "4", "6", "7")
, existe alguma chance de eu "reverter" os níveis para que 1 = 7, 2 = 6, 3 = 5 etc., utilizandofactor
função?
Outras funções eficientes de recodificação devem ser suficientes!