check_set_equality() is a wrapper of check_subset(). It tests if one value set is a subset of another and vice versa, i.e., if both sets are the same. If not, it throws an error.

check_set_equality(t1, c1, t2, c2)

Arguments

t1

The data frame that contains the columns c1.

c1

The columns of t1 that should only contain values that are also present in columns c2 of data frame t2. Multiple columns can be chosen using c(col1, col2).

t2

The data frame that contains the columns c2.

c2

The columns of t2 that should only contain values that are also present in columns c1 of data frame t1. Multiple columns can be chosen using c(col1, col2).

Value

Returns t1, invisibly, if the check is passed. Otherwise an error is thrown and the reason for it is explained.

Examples

data_1 <- tibble::tibble(a = c(1, 2, 1), b = c(1, 4, 1), c = c(5, 6, 7))
data_2 <- tibble::tibble(a = c(1, 2, 3), b = c(4, 5, 6), c = c(7, 8, 9))
# this is failing:
try(check_set_equality(data_1, a, data_2, a))
#> # A tibble: 1 × 3
#>       a     b     c
#>   <dbl> <dbl> <dbl>
#> 1     3     6     9
#> Error in abort_sets_not_equal(map_chr(catchers, conditionMessage)) : 
#>   Column (`a`) of table `data_2` contains values (see examples above) that are not present in column (`a`) of table `data_1`.

data_3 <- tibble::tibble(a = c(2, 1, 2), b = c(4, 5, 6), c = c(7, 8, 9))
# this is passing:
check_set_equality(data_1, a, data_3, a)