Evan の Logbook
✨ Updates
🎨 Style Guide
🧠 Creative Resources
🗒️ Mind Notes
🧭 Knowbase
📘 SOPs
🩺 Medical Research
🛠️ Tech Chronicles
💰 Fortune Blueprint
📈 R Visionary
📊 Statistics
🖼️ BioVis
dplyr包的distinct()函数
type
status
date
slug
summary
tags
category
icon
password
comment
distinct() 是 dplyr 包中用于去重的函数,能从数据框中提取唯一值组合。常见于数据清洗、探索与样本抽取等流程。1. 函数原型
参数 | 含义 |
.data | 数据框( data.frame 或 tibble) |
... | 指定要去重的列(一个或多个表达式),默认对所有列去重 |
.keep_all | 是否保留未参与去重的其他列( TRUE:保留整行,FALSE:只返回去重列) |
2. 核心场景与示例
首先准备示例数据:
2.1 完全去重(对所有列)
输出:
只保留行完全相同的记录一次。
2.2 按指定列去重
仅提取
name 与 score 的唯一组合:输出:
返回所有不同的
(name, score) 对。2.3 保留整行信息
对
name 去重,保留每个唯一 name 的整行数据(默认保留第一次出现那条):输出:
每个
name 只出现一次,且带回对应的 score、age、time。2.4 控制保留记录顺序
有时需要“按时间保留最新”或“按分数保留最高”:
3. 实用技巧
- 快速查看某列类别:
distinct(df, some_column)
- 配合
count():先distinct(df, col1, col2) %>% count(col1)
- 分组抽样:按某列去重并保留全行,相当于每组抽一条
- 管道友好:任何
dplyr流水线中都可随时插入distinct()
小结
distinct()是数据清洗中最常用的“去重”工具;
- 默认对所有列完全去重,指定列后只看列组合;
- 设置
.keep_all = TRUE可保留全行;
- 配合
arrange(),即可灵活选择保留“最新”“最高”“最早”等记录。
Prev
count():快速计数分组频次
Next
ggplot2 点形状(shape)
Loading...
YouTube 使用笔记