R: Test if two vectors are equal

vec_equal {vctrs} | R Documentation

## Test if two vectors are equal

### Description

`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)`.

### Usage

    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 `NA`s if `na_equal` is `FALSE`.

### Dependencies

- `vec_cast_common()` with fallback

- `vec_recycle_common()`

- `vec_proxy_equal()`

### Examples

    vec_equal(c(TRUE, FALSE, NA), FALSE)
    vec_equal(c(TRUE, FALSE, NA), FALSE, na_equal = TRUE)
    vec_equal_na(c(TRUE, FALSE, NA))

    vec_equal(5, 1:10)
    vec_equal("d", letters[1:10])

    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))
    vec_equal_na(df)

[Package vctrs version 0.3.2 Index]