首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建部分重复行的新数据(基于45列中的4列的重复数据)

如何创建部分重复行的新数据(基于45列中的4列的重复数据)
EN

Stack Overflow用户
提问于 2022-10-09 20:42:48
回答 2查看 22关注 0票数 0

我有一个很大的数据集,其中大约10%是“双重编码”。一名研究助理重新收集了部分数据的数据,这样我们就可以确保数据的准确性。大多数情况下,我想检查拼写错误和其他不符之处。

我只想将双编码行提取到一个新的数据帧中,这样我就可以读取它们以确保它们匹配,然后删除重复的行。

我可以根据4个ID列(链接、BillType、BillNumber、Name)识别重复的数据。我知道如何根据一定数量的列识别重复行和删除重复项,但如何才能创建重复的数据集?

这样我就可以删除重复的行:

代码语言:javascript
复制
FullData <- FullData %>% 
  distinct(Link, BillType, BillNumber, Name, .keep_all = TRUE)
EN

回答 2

Stack Overflow用户

发布于 2022-10-09 21:49:50

我们可以使用dplyr::anti_join

代码语言:javascript
复制
library(dplyr)

FullData %>% 
    distinct(Link,
             BillType,
             BillNumber,
             Name,
             .keep_all = TRUE) %>%
    anti_join(FullData)
票数 0
EN

Stack Overflow用户

发布于 2022-10-09 21:53:37

一种方法是按变量分组,并使用group_rows作为助手来访问重复项(lengths(grps) > 1)。

示例

代码语言:javascript
复制
df
  one two three four five six
1   5   5     6    2    6   6
2   4  10     1   10    8   9
3   2   7     6    2    6   9

选择第三列、第四列和第五列查找重复项。

代码语言:javascript
复制
library(dplyr)

grps <- df %>% 
  group_by(across(three:five)) %>% 
  group_rows

df[sapply(grps[lengths(grps) > 1], c), ]
  one two three four five six
1   5   5     6    2    6   6
3   2   7     6    2    6   9

数据

代码语言:javascript
复制
df <- structure(list(one = c(5, 4, 2), two = c(5, 10, 7), three = c(6, 
1, 6), four = c(2, 10, 2), five = c(6, 8, 6), six = c(6, 9, 9
)), class = "data.frame", row.names = c(NA, -3L))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74008223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档