2

我想知道如何按 r 中特定分组变量级别的特定顺序排列数据行。

使用mtcars数据集,我想创建一个数据框,称为mtcars_arrange其中行首先按gear以下顺序按值组织的位置:

> # desired gear order
> gear_order <- c(4, 3, 5)
> gear_order
[1] 4 3 5

然后,我希望数据集按特定carb值组织:

> # desired carb order
> carb_order <- c(4, 1, 2, 3, 6, 8)
> carb_order
[1] 4 1 2 3 6 8

我知道您可以使用该dplyr::arrange()命令来完成类似的任务,但我不确定如何让它为我的目的工作。

任何帮助,将不胜感激。谢谢。



这是与此问题相关的一些废代码:

# dataset
mtcars

# unique values of gear variable
unique(mtcars$gear)

# unique values of carb variable
unique(mtcars$carb)

# desired gear order
gear_order <- c(4, 3, 5)

# desired carb order
carb_order <- c(4, 1, 2, 3, 6, 8)
4

1 回答 1

2

我们可以转换为factor指定levels为创建的矢量对象arrange

library(dplyr)
mtcars1 <- mtcars %>% 
     arrange(factor(gear, levels = gear_order), 
            factor(carb, levels = carb_order))
于 2021-08-16T18:13:03.927 回答