expect_dfs_equal: Expectation: Are Two Datasets Equal?

View source: R/expect_dfs_equal.R

expect_dfs_equalR Documentation

Expectation: Are Two Datasets Equal?

Description

Uses diffdf::diffdf() to compares 2 datasets for any differences. This function can be thought of as an R-equivalent of SAS proc compare and a useful tool for unit testing as well.

Usage

expect_dfs_equal(base, compare, keys, ...)

Arguments

base

Input dataset

Permitted values

A dataset, i.e., a data.frame or tibble.

Default value

none

compare

Comparison dataset

Default value

none

keys

character vector of variables that define a unique row in the base and compare datasets

Default value

none

...

Additional arguments passed onto diffdf::diffdf()

Default value

none

Value

An error if base and compare do not match or NULL invisibly if they do

Examples

library(dplyr, warn.conflicts = FALSE)

tbl1 <- tribble(
  ~USUBJID, ~AGE, ~SEX,
  "1001", 18, "M",
  "1002", 19, "F",
  "1003", 20, "M",
  "1004", 18, "F"
)

tbl2 <- tribble(
  ~USUBJID, ~AGE, ~SEX,
  "1001", 18, "M",
  "1002", 18.9, "F",
  "1003", 20, NA
)

try(expect_dfs_equal(tbl1, tbl2, keys = "USUBJID"))

tlb3 <- tribble(
  ~USUBJID, ~AGE, ~SEX,
  "1004", 18, "F",
  "1003", 20, "M",
  "1002", 19, "F",
  "1001", 18, "M",
)

# Note the sorting order of the keys is not required
expect_dfs_equal(tbl1, tlb3, keys = "USUBJID")


admiraldev documentation built on June 26, 2025, 1:09 a.m.