Step 06 - Generate status codes
step-06-gen-status-codes.RmdTitles often carry a temporal/temporary qualifier — FORMER, INTERIM, FUTURE, EX OFFICIO, and so on. gen_status_codes() detects each qualifier, adds a boolean flag, and either removes it or standardizes it in place.
gen_status_codes()
|
+- flag_and_remove() flag SCODE.X and delete the qualifier (FORMER, INTERIM, FUTURE, ...)
+- flag_and_keep() flag SCODE.X but keep a standardized form (EXOFFICIO, REGIONAL)
+- get_variants() collapse a status code's variants into one regex
The variant-to-code mapping comes from the bundled status-code crosswalk (see the Dictionaries article). Some qualifiers (EX OFFICIO, REGIONAL) are kept because they change the meaning of the role.
Examples
sc <- get_googlesheets_status_codes()
# all variants that map to FORMER, as a single regex
get_variants("FORMER", sc)
#> [1] "\\bCEASED\\b|\\bDECEASED\\b|\\bEMERITUS\\b|\\bFORMER\\b|\\bFRMR\\b|\\bIMMED PAST\\b|\\bIMMEDIATE\\b|\\bIMMEDIATE PA\\b|\\bIMMEDIATE PAST\\b|\\bPAST\\b|\\bIMMED PAST\\b|\\bPREVIOUS\\b|\\bPRIOR\\b|\\bRETIRED\\b"
x <- c("IMMEDIATE PAST CHAIR", "OUTGOING CEO", "ACTING DIRECTOR", "TREASURER")
remove_status(x, get_variants("FORMER", sc))
#> [1] " CHAIR" "OUTGOING CEO" "ACTING DIRECTOR" "TREASURER"
remove_status(x, get_variants("INTERIM", sc))
#> [1] "IMMEDIATE PAST CHAIR" "OUTGOING CEO" " DIRECTOR"
#> [4] "TREASURER"In the pipeline
library(dplyr)
data(tinypartvii)
set.seed(6)
d <- dplyr::sample_n(tinypartvii, 150)
df <- d |>
standardize_df() |> remove_dates() |> standardize_conj() |>
split_titles() |> standardize_spelling() |> gen_status_codes()
#> [OK] standardize df step complete
#> [OK] remove dates step complete
#> [OK] standardize conjunctions step complete
#> [OK] split titles step complete
#> [OK] standardize spelling step complete
#> [OK] generate status codes step complete
df |>
dplyr::filter(FORMER.X == 1 | INTERIM.X == 1) |>
dplyr::select(TitleTxt5, TitleTxt6, FORMER.X, INTERIM.X) |>
head(8)
#> # A tibble: 2 × 5
#> # Groups: PERSONID [2]
#> PERSONID TitleTxt5 TitleTxt6 FORMER.X INTERIM.X
#> <chr> <chr> <chr> <int> <int>
#> 1 PID-d6228412b6df9a30d2e676db3f1d72b5 PAST CHAIR CHAIR 1 0
#> 2 PID-797bf2fcdff99e605d47b1272a93085a EXECUTIVE C… EXECUTIV… 1 0Input: TitleTxt5. Output: TitleTxt6 plus status flags (FORMER.X, INTERIM.X, FUTURE.X, EXOFFICIO.X, REGIONAL.X, …). Continue with step 07.