更改因子特征向量的顺序
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
我有一个特征因子级向量。
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
.
有没有办法在不指定每个名称的情况下更改顺序? 有什么想法吗?
谢谢!
请使用 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