isReplicated
From R.utils v2.10.1
by Henrik Bengtsson
Identifies all entries with replicated values
Identifies all entries with replicated values, that is, with values that exist more than once.
Usage
isReplicated(x, ...)
replicates(x, ...)
Arguments
- x
A
vector
of length K.- ...
Additional arguments passed to
duplicated
().
Details
Let reps <- isReplicated(x)
. Then it always holds that:
reps == rev(isReplicated(rev(x)))
reps == duplicated(x) | duplicated(x, fromLast=TRUE)
reps == !is.element(x, setdiff(x, unique(x[duplicated(x)])))
Value
A logical
vector
of length K,
where TRUE
indicates that the value exists elsewhere,
otherwise not.
See Also
Internally duplicated
() is used.
See also isSingle
().
Examples
# NOT RUN {
x <- c(1,1,2,3,4,2,1)
x <- base::letters[x]
print(x)
# Identify entries with replicated values
reps <- isReplicated(x)
print(x[reps])
stopifnot(x[reps] == replicates(x))
# Identify entries with unique values
print(x[!reps])
stopifnot(x[!reps] == singles(x))
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Validation
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
x <- c(1,1,2,3,4,2,1)
x <- base::letters[x]
reps <- isReplicated(x)
stopifnot(all(table(x[reps]) > 1))
stopifnot(all(table(x[!reps]) == 1))
stopifnot(all(reps == rev(isReplicated(rev(x)))))
stopifnot(all(reps == duplicated(x) | duplicated(x, fromLast=TRUE)))
stopifnot(all(reps == !is.element(x, setdiff(x, unique(x[duplicated(x)])))))
stopifnot(all(sort(c(singles(x), replicates(x))) == sort(x)))
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Benchmarking singles()
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
set.seed(0xBEEF)
n <- 1e6
x <- sample(1:(n/2), size=n, replace=TRUE)
t <- system.time({
s <- isSingle(x)
})
print(sum(s))
t0 <- system.time({
s0 <- !(x %in% x[duplicated(x)]);
})
print(t/t0)
stopifnot(all(s == s0))
# }
Community examples
Looks like there are no examples yet.