首页 > 解决方案 > 如何使用 group_by 连接列并汇总 dplyr 函数

问题描述

我有以下数据集“df1”:

性别 密码 班级
1 100 1
2 100 2
1 110 1
2 110 4
1 120 4
2 120 5

我使用“group_by”和“summarize”根据列“Class”的最小值对codfam进行分组

df <- df1 %>% 
group_by(codfam) %>%
summarize(fam_class = min(class))

它工作正常并返回给我这样的结果:

密码 班级
100 1
110 1
120 4

现在,我将获得与函数“summarize”保存在数据集中的每个 codfam 相关的列“sex”的值,如下所示:

性别 密码 班级
1 100 1
1 110 1
2 120 4

我试着用

   df <- df1 %>% 
   group_by(sex, codfam) %>%
   summarize(fam_class = min(class))

但不幸的是它不起作用。

任何帮助或建议将不胜感激,在此先感谢!

标签: rdplyr

解决方案


我们可以用slice_min

library(dplyr)
df1 %>% 
  group_by(codfam) %>%
  slice_min(n = 1, order_by = class) %>%
  ungroup

推荐阅读