vin: A consistent set membership operator

Description Usage Arguments Details Examples

Description

A set membership operator like %in% that handles NA more consistently with R's other logical comparison operators.

Usage

1
x %vin% table

Arguments

x

vector or NULL: the values to be matched

table

vector or NULL: the values to be matched against.

Details

R's basic comparison operators (almost) always return NA when one of the operands is NA. The %in% operator is an exception. Compare for example NA %in% NA with NA == NA: the first results in TRUE, while the latter results in NA as expected. The %vin% operator acts consistent with operators such as ==. Specifically, NA results in the following cases.

Examples

1
2
3
4
5
6
7
8
9
# we cannot be sure about the first element:
c(NA, "a") %vin% c("a","b")

# we cannot be sure about the 2nd and 3rd element (but note that they
# cannot both be TRUE):
c("a","b","c") %vin% c("a",NA)

# we can be sure about all elements:
c("a","b") %in% character(0)

validate documentation built on Oct. 7, 2021, 9:19 a.m.