Za każdym razem, gdy muszę przekodować jakiś zestaw zmiennych, mam na myśli funkcję recoding SPSS. Muszę przyznać, że jest to dość proste. Istnieje podobna funkcja recode
w pakiecie car
i działa ona zręcznie, ale załóżmy, że chcę załatwić sprawy przy pomocy factor
.Czynniki data.frame recode/relevel na różnych poziomach
mam data.frame
kilka zmiennych wartości z zakresu od 1 do 7. chce „reverse” wartości zmiennych, a tym samym zastąpienia 1s z 7S, 2S z 6S, 3S z 5S itp można wykorzystać factor
funkcję:
# create dummy factor
set.seed(100)
x <- as.factor(round(runif(100,1,7)))
y <- factor(x, levels = rev(levels(x)))
A jeśli biegnę:
> levels(x)
[1] "1" "2" "3" "4" "5" "6" "7"
> levels(y)
[1] "7" "6" "5" "4" "3" "2" "1"
problem zaczyna się gdy chcę przekodować czynniki, które nie mają równych poziomach. Jeśli jakiś czynnik, z, ma poziomy c("1", "3", "4", "6", "7")
, czy jest jakaś szansa, że mogę "odwrócić" poziomy tak 1 = 7, 2 = 6, 3 = 5 itd. Używając funkcji factor
?
Inne skuteczne funkcje recode powinny wystarczyć!
Dzięki za to! Wygląda na to, że jestem po prostu zbyt zmęczony i brakuje mi tego, co oczywiste. Rozwiązanie było tak proste ... Jeszcze raz dziękuję! – aL3xa
+1 Dzięki! To rozwiązało dla mnie podobny problem. –