更改因子特征向量的顺序

change the order of a factor character vector

我有一个特征因子级向量。

cat <- as.factor(c("AS-GEN-SUM-10-Fall", "AS-GEN-SUM-3-Fall","AS-GEN-SUM-4-Fall","AS-GEN-SUM-5-Fall"))

cat
[1] AS-GEN-SUM-10-Fall AS-GEN-SUM-3-Fall  AS-GEN-SUM-4-Fall  AS-GEN-SUM-5-Fall 
Levels: AS-GEN-SUM-10-Fall AS-GEN-SUM-3-Fall AS-GEN-SUM-4-Fall AS-GEN-SUM-5-Fall

如上所示,订单以数字 -10- 而不是 -3- 开头。即使 10 大于 3.

,R 自然会按第一个数字对它们进行排序

有没有办法在不指定每个名称的情况下更改顺序? 有什么想法吗?

谢谢!

请使用 gtools 库中的 mixedsort() 函数找到以下一种可能的解决方案。

Reprex

  • 代码
library(gtools)

factor(mixedsort(c("AS-GEN-SUM-10-Fall", "AS-GEN-SUM-3-Fall","AS-GEN-SUM-4-Fall","AS-GEN-SUM-5-Fall"), decreasing = TRUE))
  • 输出
#> [1] AS-GEN-SUM-3-Fall  AS-GEN-SUM-4-Fall  AS-GEN-SUM-5-Fall  AS-GEN-SUM-10-Fall
#> 4 Levels: AS-GEN-SUM-10-Fall AS-GEN-SUM-3-Fall ... AS-GEN-SUM-5-Fall

reprex package (v2.0.1)

创建于 2022-02-11