vec_equal_na() tests a special case: equality with NA. It is similar to is.na but:

  • Considers the missing element of a list to be NULL.

  • Considered data frames and records to be missing if every component is missing. This preserves the invariant that vec_equal_na(x) is equal to vec_equal(x, vec_init(x), na_equal = TRUE).

vec_equal(x, y, na_equal = FALSE, .ptype = NULL)

vec_equal_na(x)

Arguments

x

Vectors with compatible types and lengths.

y

Vectors with compatible types and lengths.

na_equal

Should NA values be considered equal?

.ptype

Override to optionally specify common type

Value

A logical vector the same size as. Will only contain NAs if na_equal is FALSE.

Examples

vec_equal(c(TRUE, FALSE, NA), FALSE)
#> [1] FALSE TRUE NA
vec_equal(c(TRUE, FALSE, NA), FALSE, na_equal = TRUE)
#> [1] FALSE TRUE FALSE
vec_equal_na(c(TRUE, FALSE, NA))
#> [1] FALSE FALSE TRUE
vec_equal(5, 1:10)
#> [1] FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
vec_equal("d", letters[1:10])
#> [1] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
df <- data.frame(x = c(1, 1, 2, 1, NA), y = c(1, 2, 1, NA, NA)) vec_equal(df, data.frame(x = 1, y = 2))
#> [1] FALSE TRUE FALSE NA NA
vec_equal_na(df)
#> [1] FALSE FALSE FALSE FALSE TRUE