Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

bit_unidup

bit unique and duplicated


Description

Fast versions of unique, duplicated , anyDuplicated and sum(duplicated(x)) for integers.

Usage

bit_unique(x, na.rm = NA, range_na = NULL)

bit_duplicated(x, na.rm = NA, range_na = NULL, retFUN = as.bit)

bit_anyDuplicated(x, na.rm = NA, range_na = NULL)

bit_sumDuplicated(x, na.rm = NA, range_na = NULL)

Arguments

x

an integer vector

na.rm

NA treats NAs like other integers, TRUE treats all NAs as duplicates, FALSE treats no NAs as duplicates

range_na

NULL calls range_na, optionally the result of range_na can be given here to avoid calling it again

retFUN

a function that coerces bit and logical vectors

Details

determines the range of the integers and checks if the density justifies use of a bit vector; if yes, uses a bit vector for finding duplicates; if no, falls back to unique, duplicated, anyDuplicated and sum(duplicated(x))

Value

bit_unique returns a vector of unique integers,
bit_duplicated returns a boolean vector coerced to retFUN,
bit_anyDuplicated returns the position of the first duplicate (or zero if no duplicates)
bit_sumDuplicated returns the number of duplicated values (as.integer)

Functions

  • bit_unique: extracts unique elements

  • bit_duplicated: determines duplicate elements

  • bit_anyDuplicated: checks for existence of duplicate elements

  • bit_sumDuplicated: counts duplicate elements

See Also

Examples

bit_unique(c(2L,1L,NA,NA,1L,2L))
bit_unique(c(2L,1L,NA,NA,1L,2L), na.rm=FALSE)
bit_unique(c(2L,1L,NA,NA,1L,2L), na.rm=TRUE)

bit_duplicated(c(2L,1L,NA,NA,1L,2L))
bit_duplicated(c(2L,1L,NA,NA,1L,2L), na.rm=FALSE)
bit_duplicated(c(2L,1L,NA,NA,1L,2L), na.rm=TRUE)

bit_anyDuplicated(c(2L,1L,NA,NA,1L,2L))
bit_anyDuplicated(c(2L,1L,NA,NA,1L,2L), na.rm=FALSE)
bit_anyDuplicated(c(2L,1L,NA,NA,1L,2L), na.rm=TRUE)

bit_sumDuplicated(c(2L,1L,NA,NA,1L,2L))
bit_sumDuplicated(c(2L,1L,NA,NA,1L,2L), na.rm=FALSE)
bit_sumDuplicated(c(2L,1L,NA,NA,1L,2L), na.rm=TRUE)

bit

Classes and Methods for Fast Memory-Efficient Boolean Selections

v4.0.4
GPL-2 | GPL-3
Authors
Jens Oehlschlägel [aut, cre], Brian Ripley [ctb]
Initial release
2020-08-03

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.