tibble (version 1.2)

all_equal: 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 provides a much more efficient implementation for this functionality.

Usage

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

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

Run this code
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)

Run the code above in your browser using DataCamp Workspace