| assert_all_are_us_zip_codes {assertive.data.us} | R Documentation |
Checks that the input contains US zip codes.
assert_all_are_us_zip_codes(x, na_ignore = FALSE,
severity = getOption("assertive.severity", "stop"))
assert_any_are_us_zip_codes(x, na_ignore = FALSE,
severity = getOption("assertive.severity", "stop"))
is_us_zip_code(x)
x |
Input to check. |
na_ignore |
A logical value. If |
severity |
How severe should the consequences of the assertion be?
Either |
is_us_zip_code returns TRUE if the input string
contains a valid US zip code. The assert_* functions return nothing but
throw an error when the is_* function returns FALSE.
A valid zip code is considered to be 5 digits, or 5 digits then a
hyphen then 4 digits. Unused area prefixes return FALSE, but the function
doesn't guarantee that the zip code actually exists. It should correctly
return TRUE for genuine zip codes, and will weed out most badly
formatted strings non-existent areas, but some non-existent codes may
incorrectly return TRUE. If you need 100
up-to-date zip code base.
Regexes inferred from https://en.wikipedia.org/wiki/ZIP_code and https://en.wikipedia.org/wiki/List_of_ZIP_code_prefixes.
zip_codes <- c( "Beverley Hills" = "90210", "The White House" = "20500", USPTO = "22313-1450", #5+4 style ok "No hyphen" = "223131450", "Bad area prefix" = "09901", Missing = NA ) is_us_zip_code(zip_codes) assert_any_are_us_zip_codes(zip_codes) #The following code should throw an error. assertive.base::dont_stop(assert_all_are_us_zip_codes(zip_codes))