【问题标题】:Reorder factor levels using names使用名称重新排序因子水平
【发布时间】:2013-12-09 10:35:45
【问题描述】:

我可以像这样使用它们的索引对因子的水平进行重新排序

factor(iris$Species,levels(iris$Species)[c(3:1)])

但是,如果我尝试按名称重新排序相同的因子,它不起作用:

factor(iris$Species,levels(iris$Species)[c("virginica", "versicolor", "setosa")])

有没有办法使用名称重新排序因子的级别?

【问题讨论】:

    标签: r r-factor


    【解决方案1】:

    为什么不使用基本变体来赋予新的关卡名称:

    factor(iris$Species, levels=c("virginica", "versicolor", "setosa"))
    

    不过,请务必列出 所有 级别名称。否则,您将得到NA 值。

    但是,为了完整起见:如果您依赖一个因子中元素的顺序,您可能应该使用ordered 而不是factor。这只是一个具有有序级别的因子,或者更数学地说,因子级别之间的关系<。见:

    > ordered(1:3, levels=c('1', '3', '2'))
    [1] 1 2 3
    Levels: 1 < 3 < 2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      相关资源
      最近更新 更多