我有一个很大的数据集,其中大约10%是“双重编码”。一名研究助理重新收集了部分数据的数据,这样我们就可以确保数据的准确性。大多数情况下,我想检查拼写错误和其他不符之处。
我只想将双编码行提取到一个新的数据帧中,这样我就可以读取它们以确保它们匹配,然后删除重复的行。
我可以根据4个ID列(链接、BillType、BillNumber、Name)识别重复的数据。我知道如何根据一定数量的列识别重复行和删除重复项,但如何才能创建重复的数据集?
这样我就可以删除重复的行:
FullData <- FullData %>%
distinct(Link, BillType, BillNumber, Name, .keep_all = TRUE)发布于 2022-10-09 21:49:50
我们可以使用dplyr::anti_join。
library(dplyr)
FullData %>%
distinct(Link,
BillType,
BillNumber,
Name,
.keep_all = TRUE) %>%
anti_join(FullData)发布于 2022-10-09 21:53:37
一种方法是按变量分组,并使用group_rows作为助手来访问重复项(lengths(grps) > 1)。
示例
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选择第三列、第四列和第五列查找重复项。
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数据
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))https://stackoverflow.com/questions/74008223
复制相似问题