这是我当前自定义数据帧的代码:
mtcars %>%
mutate(cyl = factor(cyl, levels = c(8, 6, 4))) %>%
arrange(cyl) %>%
dplyr::select(cyl)
cyl
1 8
2 8
3 8
4 8
5 8
6 8
7 8
8 8
9 8
10 8
11 8
12 8
13 8
14 8
15 6
16 6
17 6
18 6
19 6
20 6
21 6
22 4
23 4
24 4
25 4
26 4
27 4
28 4
29 4
30 4
31 4
32 4
然而,这段代码对于看似相当简单的任务感到困惑。我希望order_by
可以做到这一点,但是这段代码无法按预期工作:
mtcars %>%
mutate(cyl = order_by(cyl, c(8, 6, 4))) %>%
dplyr::select(cyl)
cyl
1 8
2 NA
3 NA
4 NA
5 NA
6 NA
7 NA
8 NA
9 NA
10 NA
11 NA
12 NA
13 NA
14 NA
15 NA
16 NA
17 NA
18 NA
19 NA
20 NA
21 NA
22 NA
23 NA
24 NA
25 NA
26 NA
27 NA
28 NA
29 NA
30 NA
31 NA
32 NA
order_by
可以实现我的需求吗?
答案 0 :(得分:2)
如果您想按特定变量排序,例如mpg,为什么不使用括号方法:
table = mtcars %>%
mutate(cyl = factor(cyl, levels = c(8, 6, 4))) %>%
arrange(cyl)
table[order(table$mpg),]