R: A more flexible version of all.equal for vectors.

all_equal {filesstrings} | R Documentation

## A more flexible version of all.equal for vectors.

### Description

This function will return `TRUE` whenever `base::all.equal()` would return `TRUE`, however it will also return `TRUE` in some other cases:

- If `a` is given and `b` is not, `TRUE` will be returned if all of the elements of `a` are the same.

- If `a` is a scalar and `b` is a vector or array, `TRUE` will be returned if every element in `b` is equal to `a`.

- If `a` is a vector or array and `b` is a scalar, `TRUE` will be returned if every element in `a` is equal to `b`.

When this function does not return `TRUE`, it returns `FALSE` (unless it errors). This is unlike `base::all.equal()`.

### Usage

    all_equal(a, b = NULL)

### Arguments

`a` | A vector, array or list.
`b` | Either `NULL` or a vector, array or list of length either 1 or `length(a)`.

### Value

`TRUE` if "equality of all" is satisfied (as detailed in 'Description' above) and `FALSE` otherwise.

### Note

- This behaviour is totally different from `base::all.equal()`.

- There's also `dplyr::all_equal()`, which is different again. To avoid confusion, always use the full `filesstrings::all_equal()` and never `library(filesstrings)` followed by just `all_equal()`.

### Examples

    all_equal(1, rep(1, 3))
    all_equal(2, 1:3)
    all_equal(1:4, 1:4)
    all_equal(1:4, c(1, 2, 3, 3))
    all_equal(rep(1, 10))
    all_equal(c(1, 88))
    all_equal(1:2)
    all_equal(list(1:2))
    all_equal(1:4, matrix(1:4, nrow = 2))  # note that this gives TRUE

[Package filesstrings version 2.5.0 Index]