R/lists.R

Defines functions factorize_proj gas_grp_2_ify

# lists.R

gas_grps  <- c("CH4", "N2O", "HFCs", "PFCs", "SF6", "NF3")
gas_grps_2 <- c("CH4", "N2O", "F-GHGs")

gas_grp_2_ify <- function(gas_grp) {
  
  # precheck: must be a character vector
  gas_grp <- if(is.factor(gas_grp)) {as.character(gas_grp)} else gas_grp
  
  res <- case_when(
    gas_grp %in% c("F-GHGs", "HFCs", "PFCs", "SF6", "NF3") ~ "F-GHGs",
    TRUE ~ gas_grp
  )
  
  res
}

sectors = c("Energy", "Industrial Processes", "Agriculture", "Waste")

factorize_proj <- function(proj, gas_lvl = "gas_grps") {
  
  # prechecks
  if (! gas_lvl %in% c("gas_grps", "gas_grps_2")) stop("Invalid designation for gas grouping.")
  
  fac_gas <- switch(
    gas_lvl,
    "gas_grps" = mutate(proj, 
                       gas = factor(gas, levels = gas_grps)),
    "gas_grps_2" = mutate(proj, 
                         gas = factor(gas_grp_2_ify(gas_grp = gas), levels = gas_grps_2))
  )
  
  res <- fac_gas %>%
    mutate(sector = factor(sector, levels = sectors))
  
  res
}
MollieCarroll/NonCO2-Figs documentation built on April 19, 2020, 6:05 p.m.