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)
The data frame that contains the columns 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)
.
The data frame that contains the columns 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)
.
Returns t1
, invisibly, if the check is passed.
Otherwise an error is thrown and the reason for it is explained.
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)