Lazy loaded imagedplyr包的distinct()函数

type
status
date
slug
summary
tags
category
icon
password
comment
distinct()dplyr 包中用于去重的函数,能从数据框中提取唯一值组合。常见于数据清洗、探索与样本抽取等流程。

1. 函数原型

参数
含义
.data
数据框(data.frametibble
...
指定要去重的列(一个或多个表达式),默认对所有列去重
.keep_all
是否保留未参与去重的其他列(TRUE:保留整行,FALSE:只返回去重列)

2. 核心场景与示例

首先准备示例数据:

2.1 完全去重(对所有列)

输出:
只保留行完全相同的记录一次。

2.2 按指定列去重

仅提取 namescore 的唯一组合:
输出:
返回所有不同的 (name, score) 对。

2.3 保留整行信息

name 去重,保留每个唯一 name 的整行数据(默认保留第一次出现那条):
输出:
每个 name 只出现一次,且带回对应的 scoreagetime

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...
Article List
Evan の Logbook
✨ Updates
🎨 Style Guide
🧠 Creative Resources
🗒️ Mind Notes
🧭 Knowbase
📘 SOPs
🩺 Medical Research
🛠️ Tech Chronicles
💰 Fortune Blueprint
📈 R Visionary
📊 Statistics
🖼️ BioVis