Один из вариантов - определить cyl
как factor
с levels
на основе наших предпочтений, а затем использовать arrange
library(dplyr)
mtcars %>%
mutate(cyl = factor(cyl, levels = c(4, 8, 6))) %>%
arrange(cyl)
То же самое с использованием базы R будет
df <- transform(mtcars, cyl = factor(cyl, levels = c(4, 8, 6)))
df[order(df$cyl), ]
Или другой вариант - использовать match
, а затем order
mtcars[order(match(mtcars$cyl, c(4, 8, 6))), ]