rstudio dplyr多列分组

rstudio dplyr多列分组,r,dplyr,R,Dplyr,在Rstudio中,我有一个包含4列的数据帧,我需要得到前3列中每一个不同的三元组的列表,按第4列的总和递减排序。例如,使用: A B C 2 D E F 5 A B C 4 G H I 5 D E F 3 因此,我需要: D E F 8 A B C 6 G H I 5 我尝试了以下不同的方法,但无法获得所需的确切结果: df_list<-df_raw_data %>% group_by(param1, param2, param3) %>% summarise_all(t

在Rstudio中,我有一个包含4列的数据帧,我需要得到前3列中每一个不同的三元组的列表,按第4列的总和递减排序。例如,使用:

A B C 2
D E F 5
A B C 4
G H I 5
D E F 3
因此,我需要:

D E F 8
A B C 6
G H I 5
我尝试了以下不同的方法,但无法获得所需的确切结果:

df_list<-df_raw_data %>%
group_by(param1, param2, param3) %>%
summarise_all(total = sum(param4))
arrange(df_list, desc(total))
df_列表%
分组依据(参数1、参数2、参数3)%>%
汇总所有(总计=总和(参数4))
安排(df_列表,描述(总计))
以及:


df_list这就是你想要的吗

df <- data_frame(var1 = c("A", "D", "A", "G", "D"),
             var2 = c("B", "E", "B", "H", "E"),
             var3 = c("C", "F", "C", "I", "F"),
             var4 = c(2, 5, 4, 5, 3))

df %>% group_by(var1, var2, var3) %>% 
       summarise(sum = sum(var4)) %>% 
       arrange(desc(sum))
df%分组依据(var1、var2、var3)%>%
总结(总和=总和(变量4))%>%
安排(说明(总和))

我们可以在
处使用
分组来选择要分组的列

library(dplyr)

dat2 <- dat %>%
  group_by_at(vars(-V4)) %>%
  summarise(V4 = sum(V4)) %>%
  ungroup()
dat2
# # A tibble: 3 x 4
#   V1    V2    V3       V4
#   <chr> <chr> <chr> <int>
# 1 A     B     C         6
# 2 D     E     F         8
# 3 G     H     I         5
数据

dat <- read.table(text = "A B C 2
D E F 5
A B C 4
G H I 5
D E F 3",
                  header = FALSE, stringsAsFactors = FALSE)
dat
dat2 <- dat %>%
  group_by_if(is.character) %>%
  summarise(V4 = sum(V4)) %>%
  ungroup()
dat2
# # A tibble: 3 x 4
#   V1    V2    V3       V4
#   <chr> <chr> <chr> <int>
# 1 A     B     C         6
# 2 D     E     F         8
# 3 G     H     I         5
dat <- read.table(text = "A B C 2
D E F 5
A B C 4
G H I 5
D E F 3",
                  header = FALSE, stringsAsFactors = FALSE)