所以我有一个名为“Mark”的字符变量,有3个级别“A”,“B”,“C” 我想将其转换为数值,以用于线性回归。
当我使用as.numeric(Mark)时,它按字母顺序递增重新编码 A = 1,B = 2,C = 3
但我想要的是按字母顺序递减重新编码,比如 A = 3,B = 2,C = 1
我尝试将descreasing = TRUE / FALSE,ordered = TRUE / FALSE作为as.numeric()中的选项,但它似乎不起作用。 这有什么简单的方法吗?谢谢你的帮助
答案 0 :(得分: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