我以前没有遇到过这个问题。我想根据条件对组内的多列进行升序或降序排序
library(dplyr)
data <- mtcars %>% select(mpg, cyl, disp)
If cyl <= 4
,我想排序mpg, disp
(按该优先级)按升序排列。如果cyl > 4
,我想排序mpg, disp
按降序排列。
expected <- rbind(
filter(data, cyl <= 4) %>% arrange(mpg, disp),
filter(data, cyl > 4) %>% arrange(cyl, desc(mpg), desc(disp))
)
将每个可能反转的变量乘以sign(4.1 - cyl)
:
mtcars %>% arrange(cyl, sign(4.1 - cyl) * mpg, sign(4.1 - cyl) * disp)
If mpg
,比如说,不是数字,仍然可以通过替换来做到这一点mpg
with xtfrm(mpg)
这会将其映射为数字。看?xtfrm
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)