AllDuplicated.Rd
The function duplicated
returns a logical vector indicating which elements x are duplicates, but will not include the very first appearance of subsequently duplicated elements. AllDuplicated
returns an index vector of ALL the values in x
which are involved in ties.
So !AllDuplicated
can be used to determine all elements of x, which
appear exactly once (thus with frequency 1).
AllDuplicated(x)
logical vector of the same dimension as x.
unique
returns a unique list of all values in xduplicated
returns an index vector flagging all elements, which appeared more than once (leaving out the first appearance!)union
(A, B) returns a list with the unique values from A and Bintersect
returns all elements which appear in A and in Bsetdiff
(A, B) returns all elements appearing in A but not in B setequal
(A, B) returns TRUE
if A contains exactly the same elements as Bsplit
(A, A) returns a list with all the tied values in A (see examples)
x <- c(1:10, 4:6)
AllDuplicated(x)
#> [1] FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE FALSE FALSE TRUE TRUE
#> [13] TRUE
# compare to:
duplicated(x)
#> [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
#> [13] TRUE
x[!AllDuplicated(x)]
#> [1] 1 2 3 7 8 9 10
# union, intersect and friends...
A <- c(sort(sample(1:20, 9)),NA)
B <- c(sort(sample(3:23, 7)),NA)
# all elements from A and B (no duplicates)
union(A, B)
#> [1] 1 4 11 12 15 16 18 19 20 NA 13 17 23
# all elements appearing in A and in B
intersect(A, B)
#> [1] 4 12 18 20 NA
# elements in A, but not in B
setdiff(A, B)
#> [1] 1 11 15 16 19
# elements in B, but not in A
setdiff(B, A)
#> [1] 13 17 23
# Does A contain the same elements as B?
setequal(A, B)
#> [1] FALSE
# Find ties in a vector x
x <- sample(letters[1:10], 20, replace=TRUE)
ties <- split(x, x)
# count tied groups
sum(sapply(ties, length) > 1)
#> [1] 5
# length of tied groups
(x <- sapply(ties, length))[x>1]
#> b c e f h
#> 3 3 4 2 4
# by means of table
tab <- table(x)
tab[tab>1]
#> x
#> 1 3 4
#> 4 2 2
# count elements involved in ties
sum(tab>1)
#> [1] 3
# count tied groups
sum(tab[tab>1])
#> [1] 8