如何识别和标记特定列中的重复数据

Posted

技术标签:

【中文标题】如何识别和标记特定列中的重复数据【英文标题】:How to identify and mark duplicate data in a specific column 【发布时间】:2022-01-17 23:49:06 【问题描述】:

我有一个数据集,其中包含不同列中的一些重复 ID 和日期。我正在尝试识别和标记重复的 ID,以便我可以使用 ifelse 语句进一步分解此数据集。 Sample of data set 如果您查看数据,您会看到在Case: Case Number 列中,有一个重复的ID。在Questionnaire: Created Date 列中,日期不同。我基本上希望能够识别“案例编号”列中的重复项目,并判断“日期”列中的日期是不同还是相同。如果我什至能弄清楚如何做一个 ifelse 语句来帮助我标记重复的数字,那就太棒了。我只是不确定如何进行。最终目标是删除具有相同日期的重复项。有什么想法吗?

【问题讨论】:

请不要发布代码/数据/错误的图像:它会破坏屏幕阅读器并且无法复制或搜索(参考:meta.***.com/a/285557 和 xkcd.com/2116)。请直接包含代码、控制台输出或数据(例如,data.frame(...) 或来自dput(head(x)) 的输出)。 或许complete.cases(x[,c(5,7)])? 【参考方案1】:

这是一个例子

library(lubridate)
library(dplyr)

x = data.frame(ID = c(1,1,2,3), date = as_date(c(1,1,2,4))) %>%
  group_by(ID,date) %>%
  mutate(duplicated = n() > 1)

输出

  ID date       duplicated
  <dbl> <date>     <lgl>     
1     1 1970-01-02 TRUE      
2     1 1970-01-02 TRUE      
3     2 1970-01-03 FALSE     
4     3 1970-01-05 FALSE    

【讨论】:

以上是关于如何识别和标记特定列中的重复数据的主要内容,如果未能解决你的问题,请参考以下文章

导入 cvs 但基于特定列中的零删除行[重复]

Python:在特定列中删除值= 0行[重复]

熊猫根据索引标签选择特定列中的值[重复]

如何在特定列中添加具有相同字符串值的行,并且不转换数据框? [重复]

SQL:使用案例在单独的列中查找重复项和标记

在列中的两个值之间重复值