【发布时间】:2018-02-22 09:10:09
【问题描述】:
我以前没有遇到过这个问题。我想根据条件对组内的多个列进行升序或降序排序
library(dplyr)
data <- mtcars %>% select(mpg, cyl, disp)
如果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))
)
【问题讨论】:
-
您的
expected解决方案看起来很合理。您希望从中改进什么? -
我的真实数据有很多组,条件并不总是与分组列相关 - 根据您的评论,我意识到我总是可以根据多个条件过滤我的 data.frame 并相应地安排。仍然希望有一个“更好”的方式