Каждый раз, когда мне нужно перекодировать некоторый набор переменных, я имею в виду функцию перекодирования SPSS. Я должен признать, что это довольно просто. В пакете car
есть аналогичная функция recode
, и она делает свое дело, но давайте предположим, что я хочу добиться результата с factor
.
У меня есть data.frame
с несколькими переменными с диапазоном значений от 1 до 7. Я хочу "перевернуть" значения переменных, следовательно, заменяя 1 с 7 с, 2 с 6 с, 3 с 5 с и т.д. :
# create dummy factor
set.seed(100)
x <- as.factor(round(runif(100,1,7)))
y <- factor(x, levels = rev(levels(x)))
А если я бегу:
> levels(x)
[1] "1" "2" "3" "4" "5" "6" "7"
> levels(y)
[1] "7" "6" "5" "4" "3" "2" "1"
Проблема начинается, когда я хочу перекодировать факторы, которые не имеют равных уровней. Если какой-то фактор, z, имеет уровни c("1", "3", "4", "6", "7")
, есть ли вероятность, что я смогу "повернуть" уровни, чтобы 1 = 7, 2 = 6, 3 = 5 и т. Д., Используя функцию factor
?
Достаточно других эффективных функций перекодирования!