Skip to contents

standardize_titles() maps each cleaned title to a canonical title.standard using the title-standardization crosswalk, after applying a few conditional “executive fixes” for ambiguous finance and chancellor roles.

standardize_titles()
|
+- basic_csuite_fixes()   conditional logic -> TitleTxt7
|    +- replace_ceo()     CHANCELLOR -> CEO if paid, else BOARD PRESIDENT
|    +- replace_cfo()     finance roles -> CFO when officer + paid + full-time
+- merge with the crosswalk on the title variant -> title.standard

Crosswalk mapping

The crosswalk collapses many spellings onto one canonical form (for example “ADMINISTRATION ASSISTANT” and “ADMINISTRATIVE ASSISTANT” both map to “ADMINISTRATIVE ASSISTANT”). See the Dictionaries article.

library(dplyr)
data(tinypartvii)
set.seed(7)
d <- dplyr::sample_n(tinypartvii, 200)

df <- d |>
  standardize_df() |> remove_dates() |> standardize_conj() |>
  split_titles() |> standardize_spelling() |> gen_status_codes() |>
  standardize_titles()
#> [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
#> [OK] standardize titles step complete

df |>
  dplyr::select(TitleTxt6, title.standard) |>
  dplyr::distinct() |>
  head(12)
#>                    TitleTxt6               title.standard
#> 1                   ADJUTANT CHIEF ADMINISTRATIVE OFFICER
#> 2    ASSISTANT CHAIR TRUSTEE                         <NA>
#> 3  ASSISTANT GENERAL MANAGER              GENERAL MANAGER
#> 4    ASSOCIATE DIRECTOR VJAS                         <NA>
#> 5                BOARD CHAIR              BOARD PRESIDENT
#> 6               BOARD MEMBER                 BOARD MEMBER
#> 7            BRONCO-DIRECTOR                         <NA>
#> 8                   CC CHAIR                         <NA>
#> 9                        CEO                          CEO
#> 10                     CHAIR              BOARD PRESIDENT
#> 11                     CHIEF                        CHIEF
#> 12             CHIEF STEWARD                        CHIEF

A necessary caveat

The crosswalk is a deterministic 1:1 map, so it cannot resolve genuinely ambiguous titles — “PRESIDENT” may be a working CEO or an unpaid board president; “DIRECTOR” may be an executive director or a board member. Step 08 attaches the organization- level features (pay rank, hours, officer flags) that a later disambiguation step uses to settle those cases.

Input: TitleTxt6. Output: TitleTxt7 and the canonical title.standard. Continue with step 08.