Skip to contents

People list several roles in one title with no standard punctuation: “CEO AND BOARD PRESIDENT”, “SEC/TREAS”, “BOARD MEMBER; TREASURER”. Other titles use the same words inside a single role: “VP OF FINANCE AND ADMINISTRATION”. standardize_conj() turns every connector that separates two titles into a single &, so that step 04 can split on it, and leaves compound titles whole.

Before and after

before (TitleTxt2) after (TitleTxt3)
SEC/TREAS SEC & TREAS
SECRETARY, TREASURER SECRETARY & TREASURER
BOARD MEMBER; TREASURER BOARD MEMBER & TREASURER
CHIEF EXEC OFFICER / FOUNDER CHIEF EXEC OFFICER & FOUNDER
PRESIDENT AND CEO PRESIDENT & CEO
VP FINANCE AND ADMINISTRATION VP FINANCE AND ADMINISTRATION
SVP, MARKETING SVP OF MARKETING
VP, MARKETING VP OF MARKETING
CHAIRMAN OF THE BOARD CHAIRMAN OF BOARD
DIRECTOR TO DIRECTOR UNTIL
TRUSTEE, EX-OFFICIO TRUSTEE EX-OFFICIO
MGR, IT MGR IT

What it does

standardize_conj()
|
+- standardize_and()        AND -> & when both sides are titles
+- standardize_to()         a trailing TO -> UNTIL (left by a removed date)
+- standardize_of()         AS OF -> SINCE; drop a dangling OF; FOR -> OF
+- standardize_comma()      a comma as separator, as "of", or as filler
+- standardize_slash()      a slash as separator, as "of", or as filler
+- standardize_and()        again, for cases the steps above created
+- standardize_separator()  ";" and "\" -> &

The decision for AND, a comma or a slash is the same: if the words on both sides are recognizable titles, the connector separates two roles and becomes &. If the words after it are a subject (FINANCE, MARKETING), it means “of”. Otherwise it is dropped.

Assets

Asset Type Used for Load it with
likely.titles word list (package data) titles that, found on both sides of a connector, make it a separator data(likely.titles)
data(likely.titles)
length(likely.titles)
#> [1] 50
head(likely.titles, 20)
#>  [1] "PRESIDENT"     "CEO"           "DIRECTOR\\b"   "CHAIR"        
#>  [5] "TRUSTEE\\b"    "TREASURER"     "SECRETARY"     "OFFICER"      
#>  [9] "COUNSEL"       "FOUNDER"       "PUBLISHER"     "EDITOR\\b"    
#> [13] "MEMBER\\b"     "\\bCOO\\b"     "CFO"           "MANAGER"      
#> [17] "\\bCTO\\b"     "ADMINISTRATOR" "\\bCRO\\b"     "CURATOR"

Try it

standardize_and("CEO AND BOARD PRESIDENT")           # separator -> &
#> [1] "CEO & BOARD PRESIDENT"
standardize_and("VP OF FINANCE AND ADMINISTRATION")  # compound  -> unchanged
#> [1] "VP OF FINANCE AND ADMINISTRATION"
standardize_comma("SECRETARY, TREASURER")            # separator
#> [1] "SECRETARY & TREASURER"
standardize_comma("VP, MARKETING")                   # "of"
#> [1] "VP OF MARKETING"
standardize_slash("SECRETARY/TREASURER")             # separator
#> [1] "SECRETARY & TREASURER"
standardize_to("DIRECTOR TO")                        # -> DIRECTOR UNTIL
#> [1] "DIRECTOR UNTIL"
standardize_of("VICE PRESIDENT AS OF")               # -> VICE PRESIDENT SINCE
#> [1] "VICE PRESIDENT SINCE"

Input: TitleTxt2. Output: TitleTxt3, with & as the only separator between titles. Continue with step 04.