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
Другие вопросы по тегам