R/aps_clean_economic_activity.R

Defines functions aps_clean_economic_activity

Documented in aps_clean_economic_activity

#' Clean economic activity data
#'
#' Produce variables indicating employment status, full/part-time status, and sick leave.
#'
#' @return Returns a new set of variables
#' @export
aps_clean_economic_activity <- function(
  data
) {
  # use inecac05 - detailed break down of economic status
if ("inecac05" %in% colnames(data)) {
  data[age >= 16 & inecac05 %in% c(1,3), lmstatus := "employed"]
  data[age >= 16 & inecac05 %in% c(2), lmstatus := "self employed"]
  data[age >= 16 & inecac05 %in% c(20,31), lmstatus := "retired"]
  data[age >= 16 & inecac05 %in% c(5), lmstatus := "unemployed"]
  data[age >= 16 & inecac05 %in% c(8,9,15,16,26,27), lmstatus := "ill"]
  data[age >= 16 & inecac05 %in% c(6,13,24), lmstatus := "education"]
  data[age >= 16 & inecac05 %in% c(4,7,10,11,12,14,17,18,19,21,22,23,25,28,29,30,32,33), lmstatus := "inactive"]

  # alternative, consistent with variable produced in hseclean for Health Survey for England data.

  data[age >= 16 & inecac05 %in% c(1,2,3), activity_lstweek := "employed"]
  data[age >= 16 & inecac05 %in% c(6,13,24), activity_lstweek := "education"]
  data[age >= 16 & inecac05 %in% c(20,31), activity_lstweek := "retired"]
  data[age >= 16 & inecac05 %in% c(4,7,14,25), activity_lstweek := "home_or_family"]
  data[age >= 16 & inecac05 %in% c(8,9,15,16,26,27), activity_lstweek := "sick_ill_disab"]
  data[age >= 16 & inecac05 %in% c(5,10,11,12,17,18,19,21,22,23,28,29,30,32,33), activity_lstweek := "unemployed"]

  data <- subset(data,select = -c(inecac05))

}

  # use inecacr - detailed break down of economic status
  if ("inecacr" %in% colnames(data)) {
    data[age >= 16 & inecacr %in% c(1,3), lmstatus := "employed"]
    data[age >= 16 & inecacr %in% c(2), lmstatus := "self employed"]
    data[age >= 16 & inecacr %in% c(21,27), lmstatus := "retired"]
    data[age >= 16 & inecacr %in% c(5), lmstatus := "unemployed"]
    data[age >= 16 & inecacr %in% c(8,12,13,19,20,24,25), lmstatus := "ill"]
    data[age >= 16 & inecacr %in% c(6,11,17), lmstatus := "education"]
    data[age >= 16 & inecacr %in% c(4,7,9,10,14,15,16,18,22,26,23,28,29), lmstatus := "inactive"]

    # alternative, consistent with variable produced in hseclean for Health Survey for England data.

    data[age >= 16 & inecacr %in% c(1,2,3), activity_lstweek := "employed"]
    data[age >= 16 & inecacr %in% c(6,11,17), activity_lstweek := "education"]
    data[age >= 16 & inecacr %in% c(21,27), activity_lstweek := "retired"]
    data[age >= 16 & inecacr %in% c(4,7,18), activity_lstweek := "home_or_family"]
    data[age >= 16 & inecacr %in% c(8,12,13,19,20,24,25), activity_lstweek := "sick_ill_disab"]
    data[age >= 16 & inecacr %in% c(5,9,10,14,15,16,22,26,28,29), activity_lstweek := "unemployed"]

    data <- subset(data,select = -c(inecacr))

  }
  # full-time/part- time status

  data[age >= 16 & ftptwk == 1, full_time := "full time"]
  data[age >= 16 & ftptwk == 2, full_time := "part time"]

  # illness

  # Binary variable indicating sick days in the survey reference week
  data[lmstatus %in% c("employed","self employed") & illwk == 1, ill_daysoff := "Yes"]
  data[lmstatus %in% c("employed","self employed") & illwk == 2, ill_daysoff := "No"]

  # Number of sick days in the reference week, if any
  data[ill_daysoff == "Yes", ill_numdays := illoff]



  # drop surplus variables
  data <- subset(data,select = -c(ftptwk,illwk,illoff))

  return(data)
}
djmorris1989/apsclean documentation built on June 17, 2020, 9:02 p.m.