# all_equal is deprecated Code all_equal(mtcars, mtcars) Condition Warning: `all_equal()` was deprecated in dplyr 1.1.0. i Please use `all.equal()` instead. i And manually order the rows/cols as needed Output [1] TRUE # data frames not equal if missing row Code all_equal(mtcars, mtcars[-1, ]) Output [1] "Different number of rows." Code all_equal(iris, iris[-1, ]) Output [1] "Different number of rows." Code all_equal(df_all, df_all[-1, ]) Output [1] "Different number of rows." # data frames not equal if missing col Code all_equal(mtcars, mtcars[, -1]) Output Different number of columns: 11 vs 10. Code all_equal(iris, iris[, -1]) Output Different number of columns: 5 vs 4. Code all_equal(df_all, df_all[, -1]) Output Different number of columns: 7 vs 6. # factors equal only if levels equal Code all_equal(df1, df2) Output Different types for column `x`: factor<38051> vs factor. Code all_equal(df2, df1) Output Different types for column `x`: factor vs factor<38051>. # factor comparison requires strict equality of levels (#2440) Code all_equal(df1, df2) Output Different types for column `x`: factor<4d52a> vs factor<38051>. Code all_equal(df2, df1) Output Different types for column `x`: factor<38051> vs factor<4d52a>. # equality test fails when convert is FALSE and types don't match (#1484) Code all_equal(df1, df2, convert = FALSE) Output Different types for column `x`: character vs factor<4d52a>. # equality returns a message for convert = TRUE Code all_equal(df1, df2) Output Different types for column `x`: integer vs character. Code all_equal(df1, df2, convert = TRUE) Output Incompatible types for column `x`: integer vs character. # numeric and integer can be compared if convert = TRUE Code all_equal(df1, df2) Output Different types for column `x`: integer vs double. # returns vector for more than one difference (#1819) Code all_equal(tibble(a = 1, b = 2), tibble(a = 1L, b = 2L)) Output Different types for column `a`: double vs integer. Different types for column `b`: double vs integer. # ignore column order Code all_equal(tibble(a = 1, b = 2), tibble(b = 2, a = 1), ignore_col_order = FALSE) Output Same column names, but different order. Code all_equal(tibble(a = 1, b = 2), tibble(a = 1), ignore_col_order = FALSE) Output Different number of columns: 2 vs 1. # count() give meaningful errors Code (expect_error(union(tibble(a = 1), tibble(a = "1")))) Output Error in `union()`: ! `x` and `y` are not compatible. x Incompatible types for column `a`: double vs character. Code (expect_error(union(tibble(a = 1, b = 2), tibble(a = "1", b = "2")))) Output Error in `union()`: ! `x` and `y` are not compatible. x Incompatible types for column `a`: double vs character. x Incompatible types for column `b`: double vs character.