R - преобразование символьной переменной в формате.numeric, но в алфавитном порядке по убыванию
Итак, у меня есть символьная переменная под названием "Mark" с 3 уровнями "A", "B", "C". Я хочу преобразовать ее в числовое значение для использования в линейной регрессии.
Когда я использую as.numeric(Mark), он перекодируется в возрастающем алфавитном порядке A=1, B=2, C=3
Но то, что я хочу, это перекодировать в порядке убывания алфавита, как A=3, B=2, C=1
Я попытался уменьшить =TRUE/FALSE, упорядочил = TRUE / FALSE в качестве параметров в as.numeric(), но, похоже, он не работает. Есть ли простой способ сделать это? Спасибо за любую помощь
1 ответ
Решение
Вы должны быть в состоянии просто пересмотреть, основываясь на rev(levels(Mark))
:
set.seed(10)
x <- factor(sample(LETTERS[1:5], 10, TRUE))
x
# [1] C B C D A B B B D C
# Levels: A B C D
as.numeric(x)
# [1] 3 2 3 4 1 2 2 2 4 3
as.numeric(factor(x, levels = rev(levels(x))))
# [1] 2 3 2 1 4 3 3 3 1 2