Recode / relevel data.frame factores con diferentes niveles
Cada vez que tengo que recodificar algún conjunto de variables, tengo en mente la función de recodificación de SPSS. Debo admitir que es bastante sencillo. Hay un similarrecode
funcionar encar
paquete, y hace el truco, pero supongamos que quiero hacer las cosas confactor
.
yo tengodata.frame
con varias variables con un rango de valores de 1 a 7. Quiero "revertir" los valores de las variables, por lo tanto, reemplazar 1s con 7s, 2s con 6s, 3s con 5s, etc. Puedo utilizarfactor
función:
# create dummy factor
set.seed(100)
x <- as.factor(round(runif(100,1,7)))
y <- factor(x, levels = rev(levels(x)))
Y si corro:
> levels(x)
[1] "1" "2" "3" "4" "5" "6" "7"
> levels(y)
[1] "7" "6" "5" "4" "3" "2" "1"
El problema comienza cuando quiero recodificar factores que no tienen niveles iguales. Si algún factor, z, tiene nivelesc("1", "3", "4", "6", "7")
, ¿hay alguna posibilidad de que pueda "revertir" los niveles, por lo que 1 = 7, 2 = 6, 3 = 5, etc.factor
¿función?
¡Otras funciones de recodificación eficientes deberían ser suficientes!