R: Flexible equality comparison for data frames.

all_equal {tibble} | R Documentation

## Flexible equality comparison for data frames.

### Description

When comparing two `tbl_df` using `all.equal()`, column and row order is ignored by default, and types are not coerced. The `dplyr` package is necessary to use this function.

### Usage

    all_equal(target, current, ignore_col_order = TRUE, ignore_row_order = TRUE,
      convert = FALSE, ...)

    ## S3 method for class 'tbl_df'
    all.equal(target, current, ...)

### Arguments

`target, current` | Two data frames to compare.
`ignore_col_order` | Should order of columns be ignored?
`ignore_row_order` | Should order of rows be ignored?
`convert` | Should similar classes be converted? Currently this will convert factor to character and integer to double.
`...` | Ignored. Needed for compatibility with `all.equal()`.

### Value

`TRUE` if equal, otherwise a character vector describing the reasons why they're not equal. Use `isTRUE()` if using the result in an `if` expression.

### Examples

    scramble <- function(x) x[sample(nrow(x)), sample(ncol(x))]
    mtcars_df <- as_tibble(mtcars)

    # By default, ordering of rows and columns ignored
    all.equal(mtcars_df, scramble(mtcars_df))

    # But those can be overriden if desired
    all.equal(mtcars_df, scramble(mtcars_df), ignore_col_order = FALSE)
    all.equal(mtcars_df, scramble(mtcars_df), ignore_row_order = FALSE)

    # By default all.equal is sensitive to variable differences
    df1 <- tibble(x = "a")
    df2 <- tibble(x = factor("a"))
    all.equal(df1, df2)
    # But you can request to convert similar types
    all.equal(df1, df2, convert = TRUE)

[Package tibble version 1.3.0 Index]