## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup-------------------------------------------------------------------- library(naxp) ## ----------------------------------------------------------------------------- NL_postcode_x <- naxp_parse(r"(\9\9\9\9 \s!! \A\A)") NL_postcode_x ## ----------------------------------------------------------------------------- postcodes_as_text <- c("1012 AB", "1012AB", "1012-AB", "not a postcode") postcodes <- naxp_encode(postcodes_as_text, NL_postcode_x) postcodes as.integer(postcodes) ## ----------------------------------------------------------------------------- naxp_decode(postcodes) # No need for the naxp (NL_postcode_x) naxp_decode(684114L, NL_postcode_x) # Decoding raw numbers requires a naxp naxp_decode(0L, NL_postcode_x) # 0 means invalid -- it decodes to NA ## ----error = TRUE------------------------------------------------------------- try({ naxp_decode(6760001L, NL_postcode_x) }) ## ----------------------------------------------------------------------------- naxp_accepts(postcodes_as_text, NL_postcode_x) naxp_canonical_form(postcodes_as_text, NL_postcode_x) ## ----------------------------------------------------------------------------- writeLines(naxp_pattern(NL_postcode_x)) # Text pattern used to define the naxp naxp_max_encoded_value(NL_postcode_x) # Maximum encoded value naxp_max_length(NL_postcode_x) # Maximum decoded text length ## ----------------------------------------------------------------------------- offices <- data.frame( office = c("Amsterdam", "Maastricht", "Head office"), postcode = naxp_encode(c("1012 AB", "6211 CA", "1012AB"), NL_postcode_x) ) offices offices[offices$postcode == "1012 AB", ] ## ----------------------------------------------------------------------------- naxp_encoded(c(684114, 0), NL_postcode_x) ## ----error = TRUE------------------------------------------------------------- try({ naxp_encoded(6760001L, NL_postcode_x) }) ## ----------------------------------------------------------------------------- naxp_standards()[, c("id", "variant")] ## ----------------------------------------------------------------------------- NL_postcode_x2 <- naxp_standard("nl-postcode") naxp_compare(NL_postcode_x, NL_postcode_x2) ## ----------------------------------------------------------------------------- NL_postcode_HT_x <- naxp_standard("nl-postcode", "hyphen-tolerant") naxp_compare(NL_postcode_x, NL_postcode_HT_x) ## ----------------------------------------------------------------------------- postcodes_as_text # Rejects "1012-AB": as.integer(naxp_encode(postcodes_as_text, NL_postcode_x)) # Accepts "1012-AB": as.integer(naxp_encode(postcodes_as_text, NL_postcode_HT_x)) ## ----error = TRUE------------------------------------------------------------- try({ naxp_parse(r"(\9\9\9\9 [A-)") }) ## ----------------------------------------------------------------------------- error <- tryCatch(naxp_parse(r"(\9\9\9\9 [A-)"), naxp_error = identity) error$code error$offset