创建时设置因子参考水平

时间:2018-07-19 16:17:49

标签: r

是否可以在R中创建因子变量并同时指定 just 该因子的参考水平?

我可以分两个步骤完成此操作,首先创建因子,然后使用relevel(),例如

MyVar = factor(seq(1, 10))
MyVar = relevel(MyVar, ref = 5)

或者,我可以使用levels =函数的factor()参数一步完成。但是,这需要首先获取因子的所有唯一值的列表,然后将所需的水平放在第一位,这反过来通常将需要另外几个步骤。

似乎这应该是一个非常基本的功能,但是我似乎找不到找到实现它的方法。是不是只能直接在R中实现?

1 个答案:

答案 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)