Cada vez que tengo que recodificar un conjunto de variables, tengo la función de recodificación de SPSS en mente. Debo admitir que es bastante sencillo. Hay una función similar recode
en el paquete car
, y lo hace, pero supongamos que quiero hacer cosas con factor
.Recode/relevel data.frame factores con diferentes niveles
I tienen data.frame
con varias variables con rango de valores de 1 a 7. quiero "inverso" valores de las variables, por lo tanto, la sustitución de 1s con 7s, 2s con 6s, 3S con 5s etc. I pueden utilizar factor
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 me quedo:
> levels(x)
[1] "1" "2" "3" "4" "5" "6" "7"
> levels(y)
[1] "7" "6" "5" "4" "3" "2" "1"
problema comienza cuando quiero volver a codificar factores que no tienen niveles iguales. Si algún factor, z, tiene los niveles c("1", "3", "4", "6", "7")
, ¿hay alguna posibilidad de que pueda "revertir" los niveles de modo que 1 = 7, 2 = 6, 3 = 5 etc. utilizando la función factor
?
¡Otras funciones de recodificación eficientes deberían ser suficientes!
¡Gracias por este! Parece que estoy demasiado cansado y me falta lo obvio. La solución fue tan simple ... ¡Gracias una vez más! – aL3xa
+1 ¡Gracias! Esto resolvió un problema similar para mí. –