Перекодировать / перезвонить data.frame-факторы с разными уровнями

Каждый раз, когда мне нужно перекодировать некоторый набор переменных, я имею в виду функцию перекодирования SPSS. Я должен признать, что это довольно просто. Там похожийrecode функция вcar пакет, и он делает свое дело, но давайте предположим, что я хочу, чтобы все было сделано сfactor.

я имеюdata.frame с несколькими переменными с диапазоном значений от 1 до 7. Я хочу «перевернуть» значения переменных, следовательно, заменяя 1 с 7 с, 2 с 6 с, 3 с 5 и т. д. Я могу использоватьfactor функция:

# 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 функционировать?

Другие эффективные функции перекодирования должны быть достаточными!

Ответы на вопрос(4)

Ваш ответ на вопрос