是否可以在R中创建因子变量并同时指定 just 该因子的参考水平?
我可以分两个步骤完成此操作,首先创建因子,然后使用relevel()
,例如
MyVar = factor(seq(1, 10))
MyVar = relevel(MyVar, ref = 5)
或者,我可以使用levels =
函数的factor()
参数一步完成。但是,这需要首先获取因子的所有唯一值的列表,然后将所需的水平放在第一位,这反过来通常将需要另外几个步骤。
似乎这应该是一个非常基本的功能,但是我似乎找不到找到实现它的方法。是不是只能直接在R中实现?
答案 0 :(得分:2)
一种灵活的选择是使用fct_relevel
中的forcats
,我们可以将关卡放置在任何地方
library(forcats)
fct_relevel(factor(seq(1, 10)), '5')
#[1] 1 2 3 4 5 6 7 8 9 10
#Levels: 5 1 2 3 4 6 7 8 9 10
假设level
应该是after
2
fct_relevel(factor(seq(1, 10)), '5', after = 2)
#[1] 1 2 3 4 5 6 7 8 9 10
#Levels: 1 2 5 3 4 6 7 8 9 10
此外,如评论中所述,也可以使用relevel
在单个步骤中完成
relevel(factor(seq(1, 10)), ref = 5)