Diagnostics and Quality Checks
Duplicate Check
Find Repeated IDs
Repeated identifiers can merge records incorrectly unless the policy is explicit.
Program
Play the script to change the duplicate policy and see the resulting action.
duplicate_check.R
policy_index <-
id <- c("A1", "B2", "A1", "C3")
policy <- c("ignore", "flag", "stop")[policy_index]
duplicate_id <- unique(id[duplicated(id)])
duplicate_count <- length(duplicate_id)
action <- if (duplicate_count == 0) "ok" else policy
label <- paste(action, duplicate_count, sep = ":")
cat(label, "\n", sep = "")
policy_index <-
id <- c("A1", "B2", "A1", "C3")
policy <- c("ignore", "flag", "stop")[policy_index]
duplicate_id <- unique(id[duplicated(id)])
duplicate_count <- length(duplicate_id)
action <- if (duplicate_count == 0) "ok" else policy
label <- paste(action, duplicate_count, sep = ":")
cat(label, "\n", sep = "")
policy_index <-
id <- c("A1", "B2", "A1", "C3")
policy <- c("ignore", "flag", "stop")[policy_index]
duplicate_id <- unique(id[duplicated(id)])
duplicate_count <- length(duplicate_id)
action <- if (duplicate_count == 0) "ok" else policy
label <- paste(action, duplicate_count, sep = ":")
cat(label, "\n", sep = "")
identifier
An ID column should usually identify one record.
duplicate scan
`duplicated(id)` marks repeated IDs after their first appearance.
policy
The duplicate policy decides whether to ignore, flag, or stop.