首页 > 解决方案 > 识别重复行组并保持组顺序

问题描述

我正在尝试使用随机重复的“块”来组织患者数据的电子表格。不幸的是,数据行是随机重复的,给了我重复的“块”。我需要在保留原始顺序的同时删除重复块。

这是一个示例:

+---------+-----+----------+
| patient | age | children |
+---------+-----+----------+
| x       | 30  | g        |
| x       | 30  | b        |
| x       | 30  | g        |
| x       | 30  | b        |
| x       | 30  | g        |
| x       | 30  | b        |
| y       | 25  | g        |
| y       | 25  | b        |
| y       | 25  | b        |
| y       | 25  | g        |
| y       | 25  | b        |
| y       | 25  | b        |
+---------+-----+----------+

可以看到,患者“x”块(有 2 个孩子)重复了 3 次,患者“y”块(有 3 个孩子)重复了两次。重复块的数量是随机的。

这是我的目标:保持孩子的顺序很重要

+---------+-----+----------+
| patient | age | children |
+---------+-----+----------+
| x       | 30  | g        |
| x       | 30  | b        |
| y       | 25  | g        |
| y       | 25  | b        |
| y       | 25  | b        |
+---------+-----+----------+

我首先在 excel 中尝试了这个: 第 1 步:为所有行提供唯一标识符,以保留孩子的顺序 第 2 步:尝试删除重复项,但这对于有 2 个女孩的患者“y”来说是个问题,最终表格被删除其中之一...

我通常在 R 中进行分析,所以如果有人可以提出建议,这里的 dplyr 解决方案会很棒

除了以下,我迷路了。有没有办法识别独特的群体?

dat %>% group_by(patient)

标签: rexceldplyr

解决方案


dplyr 中的 distinct() 函数可能是你最好的选择;例如:

dat %>% distinct()

通过阅读这篇博文,您可以找到更多关于在 R 中识别和删除重复数据的信息。


推荐阅读