Removes the differences that carry no information, so the ones that remain are unambiguously behavioural:
Usage
md_normal_form(d, columns, key = c("ein", "name_key", "street_key", "zip5"))Value
d in normal form, with a .occ column disambiguating rows that
share a key (so duplicates are compared as a multiset rather than collapsed).
Details
restrict to
columns— the pinned list from the 0a baseline manifest, nevernpmatch::np_fieldsresolved at run time (Phase 0c addsvariant_classto it, so a live lookup would compare a baseline built without that column against a candidate built with it)coerce every comparison column to character, and
""toNAorder rows by
key, dropping incidental row orderorder columns by name