Skip to content

Commit

Permalink
Add LUM occupation custom variable.
Browse files Browse the repository at this point in the history
  • Loading branch information
jensenmj committed Jul 15, 2024
1 parent db1f0a4 commit d1afff5
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 4 deletions.
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Description: Various functions to pull, process and visualize Census data for ge
License: GPL-3 + file LICENSE
Encoding: UTF-8
LazyData: true
RoxygenNote: 7.3.1
RoxygenNote: 7.3.2
Imports:
curl,
data.table,
Expand Down
1 change: 1 addition & 0 deletions R/get-psrc-pums.R
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,7 @@ pums_ftp_gofer <- function(span, dyear, level, vars, dir=NULL){
if("MI_JOBSECTOR" %in% vars){dt %<>% psrc_mi_jobsector()} # - "
if("LUM_JOBSECTOR" %in% vars){dt %<>% psrc_lum_jobsector()} # - "
if("STANDARD_JOBSECTOR" %in% vars){dt %<>% psrc_standard_jobsector()} # - "
if("LUM_OCCUPATION" %in% vars){dt %<>% psrc_lum_occupation()} # - "
if("SOCP2" %in% vars){dt %<>% psrc_socp2()} # - "
if("SOCP3" %in% vars){dt %<>% psrc_socp3()} # - "
if("SOCP5" %in% vars){dt %<>% psrc_socp5()} # - "
Expand Down
39 changes: 36 additions & 3 deletions R/psrc-pums-groupings.R
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ psrc_mi_jobsector <- function(dt){
grepl("^48|^49", as.character(NAICSP)),"Transportation, Distribution & Logistics (TDL)",
grepl("^23", as.character(NAICSP)), "Construction",
grepl("^33|^3M", as.character(NAICSP)),"Manufacturing",
!is.na(NAICSP), NA_character_),
default = NA_character_),
levels=c("Construction","Manufacturing","Warehousing & Wholesale",
"Transportation, Distribution & Logistics (TDL)","Other Industrial"))]
return(dt)
Expand Down Expand Up @@ -226,7 +226,7 @@ psrc_lum_jobsector <- function(dt){
grepl("^722", as.character(NAICSP)), "10 - Food Services",
grepl("^7", as.character(NAICSP)), "11 - Personal Services",
grepl("^92", as.character(NAICSP)), "12 - Government",
!is.na(NAICSP)|as.character(NAICSP)=='999920', NA_character_))]
default = NA_character_))]
return(dt)
}

Expand All @@ -251,7 +251,7 @@ psrc_standard_jobsector <- function(dt){
grepl("^611|62441", as.character(NAICSP)), "8 - Public Education",
grepl("^5|^6|^7|^8", as.character(NAICSP)), "5 - Services",
grepl("^92", as.character(NAICSP)), "7 - Government",
!is.na(NAICSP)|as.character(NAICSP)=='999920', NA_character_))]
default = NA_character_))]
return(dt)
}

Expand Down Expand Up @@ -308,3 +308,36 @@ psrc_socp2 <- function(dt){
TRUE ~paste0(stringr::str_sub(as.character(SOCP),1L,2L),"0000"))]
return(dt)
}

#' PSRC Modeling Occupation variable
#'
#' @param dt the data.table
#' @return the data.table with custom PSRC variable "LUM_OCCUPATION"
#' @author Michael Jensen
psrc_lum_occupation <- function(dt){
LUM_OCCUPATION <- SOCP <- patterns <- NULL # Bind variables locally (for documentation, not function)
dt %<>% setDT()
if("SOCP" %not_in% colnames(dt) & any(grepl("^SOCP\\d+$", colnames(dt), ignore.case=TRUE))){
dt %<>% setnames(grep("^SOCP\\d+$", colnames(dt), ignore.case=TRUE), toupper(grep("^SOCP\\d+$", colnames(dt), value=TRUE, ignore.case=TRUE)))
dt[, grep("^SOCP\\d+$", colnames(dt)):=lapply(.SD, as.character), .SDcols=patterns("^SOCP\\d+$")]
dt[, SOCP:=fcoalesce(.SD), .SDcols=patterns("^SOCP\\d+$")]
}
dt[, LUM_OCCUPATION:= factor(fcase(is.na(SOCP) | grepl("^N/?A",as.character(SOCP)), NA_character_,
grepl("^11", as.character(SOCP)) , "01 - Management",
grepl("^(13|23)", as.character(SOCP)) , "02 - Finance & Legal",
grepl("^15", as.character(SOCP)) , "03 - Computers & Math",
grepl("^17", as.character(SOCP)) , "04 - Engineering",
grepl("^(19|29)", as.character(SOCP)) , "05 - Science & Medicine",
grepl("^(21|25)", as.character(SOCP)) , "06 - Education & Social Service",
grepl("^(31|39)", as.character(SOCP)) , "07 - Personal Care & Health Support",
grepl("^27", as.character(SOCP)) , "08 - Arts & Entertainment",
grepl("^33", as.character(SOCP)) , "09 - Protective Service",
grepl("^35", as.character(SOCP)) , "10 - Food Service",
grepl("^(41|43)", as.character(SOCP)) , "11 - Office, Admin & Sales",
grepl("^(47|49|51)", as.character(SOCP)), "12 - Construction, Installation & Production",
grepl("^(37|45)", as.character(SOCP)) , "13 - Janitorial, Groundskeeping & Agriculture",
grepl("^53", as.character(SOCP)) , "14 - Transportation",
grepl("^55", as.character(SOCP)) , "15 - Military",
default = NA_character_))]
return(dt)
}
20 changes: 20 additions & 0 deletions man/psrc_lum_occupation.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit d1afff5

Please sign in to comment.