R - 转换字符变量 as.numeric,但按字母降序排列
R - converting character variable as.numeric, but in descending alphabetical order
所以我有一个名为 "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() 中的选项,但它似乎不起作用。
有没有简单的方法可以做到这一点?感谢您的帮助
你应该可以重构,基于 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
所以我有一个名为 "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() 中的选项,但它似乎不起作用。 有没有简单的方法可以做到这一点?感谢您的帮助
你应该可以重构,基于 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