Identify duplicates and mark first occurrence and all others Identify duplicates and mark first occurrence and all others r r

Identify duplicates and mark first occurrence and all others


When I saw this question I asked myself "what would Jim Holtman or Bill Dunlap advise on Rhelp?". Haven't looked in the archives, but I think they might have advised using two "parallel" applications of duplicated, one with the defaults and one with the fromLast parameter and conjoining with a vector OR (|) operator.

duplicated(m[,1]) | duplicated(m[,1], fromLast=TRUE)[1]  TRUE FALSE  TRUE FALSE  TRUE


Here's one approach of many:

m <- matrix(c(1,2,1,3,1,4,1,2,2,3,2,3,1,2,5), ncol = 3)x <- table(m[,1])as.character(m[,1]) %in% names(x)[x > 1]## > as.character(m[,1]) %in% names(x)[x > 1]## [1]  TRUE FALSE  TRUE FALSE  TRUE# or wrap it up as function:FUN <- function(vec) {    x <- table(vec)    as.character(vec) %in% names(x)[x > 1]}FUN(m[, 1])## > FUN(m[, 1])## [1]  TRUE FALSE  TRUE FALSE  TRUE