代码之家  ›  专栏  ›  技术社区  ›  Michael Ohlrogge

创建时设置因子参考级别

r
  •  2
  • Michael Ohlrogge  · 技术社区  · 6 年前

    有没有办法在r中创建一个因子变量并同时指定 只是 该因素的参考水平?

    我可以通过两个步骤来完成这一点,首先创建因子,然后使用 relevel() ,例如

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

    或者,我可以用 levels = 的参数 factor() 功能。但是,这需要首先得到一个所有因子唯一值的列表,然后将所需的级别放在第一位,这反过来通常需要额外的两个步骤。

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

    1 回复  |  直到 6 年前
        1
  •  2
  •   akrun    6 年前

    一个灵活的选择是 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

    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)