R 按某个标签下元素的总和排序

R 按某个标签下元素的总和排序,r,dplyr,R,Dplyr,假设我有一张像R一样的桌子 df = data.frame(name=c("A","B","C","C","B","A"), group=c("X","Y","X","Y","X","Y"), val=c(10,5,1,2,6,12)) 我想按照给定名称下“val”的总和对行进行排序,然后我想在Y的上方显示X,因此df应该如下所示: name group val A X 10 A Y 12 B X

假设我有一张像R一样的桌子

df = data.frame(name=c("A","B","C","C","B","A"), group=c("X","Y","X","Y","X","Y"),
                      val=c(10,5,1,2,6,12))
我想按照给定名称下“val”的总和对行进行排序,然后我想在Y的上方显示X,因此df应该如下所示:

name  group  val
A     X      10
A     Y      12
B     X      6
B     Y      5
C     X      1
C     Y      2
我用dplyr做了一些尝试,比如:

%>% order(desc(val), group)
这根本不起作用。有什么建议吗?谢谢

我们能行

library(dplyr)
df %>% 
   arrange_all()
#  name group val
#1    A     X  10
#2    A     Y  12
#3    B     X   6
#4    B     Y   5
#5    C     X   1
#6    C     Y   2
如果有更多的列

df %>%
    arrange(name, group, val)

这不管用?假设我的df中有更多的列,但按列val/name/group排序的规范仍然有效,那么一个简单的调用如何安排所有人都知道按我指定的顺序进行排序?@RajRaina我得到了Expexced输出
library(dplyr)
df %>%
  group_by(name) %>%
  mutate(total = sum(val)) %>%
  arrange(desc(total), group)