Evan の Logbook
✨ Updates
🎨 Style Guide
🧠 Creative Resources
🗒️ Mind Notes
🧭 Knowbase
📘 SOPs
🩺 Medical Research
🛠️ Tech Chronicles
💰 Fortune Blueprint
📈 R Visionary
📊 Statistics
🖼️ BioVis
🧮group_by():分组操作的基础
type
status
date
slug
summary
tags
category
icon
password
comment
group_by() 用于为数据添加分组信息,本身不修改数据内容,但后续的 summarise()、mutate()、filter() 等操作将基于这些分组分别执行。它是 dplyr 工作流的核心。1. 函数原型
参数 | 说明 |
.data | 输入的数据框或 tibble |
... | 要分组的列(一个或多个变量名或表达式) |
.add | 是否在已有分组基础上添加新分组( TRUE/FALSE) |
2. 示例数据
3. 核心用法
3.1 按单列分组并汇总
说明:对每个
group 计算 score 平均值,最后用 .groups = "drop" 取消分组。3.2 按多列分组
说明:先按
group 再按 gender 分组,两变量联合分组后分别计算均值。3.3 组内排名
说明:对每个
group 内的 score 从大到小排名。4. .groups 参数(仅在 summarise() 中)
值 | 含义 |
"drop" | 汇总后取消所有分组(最常用) |
"drop_last" | 只去掉最内层分组,保留上层分组 |
"keep" | 保留全部分组,用于后续分组操作 |
"rowwise" | 按行处理(与 rowwise() 结合使用) |
5. 进阶技巧
- 查看当前分组:
group_vars(df %>% group_by(...))
- 取消分组:使用
ungroup()
- 嵌套分组:
.add = TRUE在已有分组上添加新的分组变量
- 过滤组:
filter()在分组上下文中可搭配n()、mean()等使用
总结
group_by()只是“打标签”,不会修改数据;
- 后续的
summarise()、mutate()等操作会自动按标签分组计算;
- 合理使用
.groups参数可控制分组生命周期;
- 与
ungroup()、filter()、arrange()等组合,构建高效的数据处理流水线。
Prev
slice() 系列函数:按位置切片提取行
Next
relocate():调整列顺序
Loading...
YouTube 使用笔记