R/job_table.R

#' job_table()
#'
#' This function creates a summary table of GED results.
#' @param enroll_data dataframe: a dataframe containing enrollment data."[Admin] raw_enrollment_report"
#' @param job_data dataframe: a dataframe containing job data."[Admin] raw_pos_report_detailed"
#' @param measure character vector: Name of measures in the table
#' @param target numeric vector: Organization target for each measure in the table
#' @param eto_programs character vector:  a vector of character containing the name of ETO programs to keep for GED analysis.
#' @param workforce_programs character vector:  a vector of character containing the name of all workforce programs.

#' @return dataframe
#' @export
#' @examples
#' enroll <- laycUtils::load_txt('./my_data_folder/enrollment.txt')
#' enroll <- laycUtils::format_data(enroll)
#' job <- laycUtils::load_txt('./my_data_folder/job.txt')
#' job <- laycUtils::format_data(tp)
#'
#' job_table(enroll_data = enroll, job_data = job)

job_table <- function(enroll_data,
                      job_data,
                      measure = c("enrolled in placement", "placed", "retained"),
                      target = c(enrolled = .75, placed = .40, retained = .70),
                      eto_programs = c("ss - job placement", "pg - employment job placement", "dc - wise job placement"),
                      workforce_programs = c("ss - ccorps projects", "ss - counseling",
                                              "ss - ged", "ss - job placement", "ss - job readiness",
                                              "pg - employment case management", "pg - employment ged",
                                              "pg - employment in school", "pg - employment job placement",
                                              "pg - employment job training", "dc - wise ged", "dc - wise job placement",
                                              "dc - wise job training"))
{
  # Get workforce enrollment
  workforce <- laycEnrollment::get_enroll(enroll, eto_programs = workforce_programs)

  # Get job enrollment
  enrollment <- job_enroll(enroll_data)

  # Get job placement
  placed <- job_placed(enroll_data, job_data)

  # Get job retention
  retained <- job_retention(enroll_data, job_data)


  # Create data frame
  n <- c(workforce, enrollment, placed)
  value <- c(enrollment, placed, retained)
  df <- data.frame(measure, target, value, n)

  # Format data frame
  df$value_scaled <- round(df$value / df$n, 3)
  df$value_scaled[df$value > df$n] <- NA
  df$y_title <- paste('%', df$measure, '\nn =', df$n)
  df$target_met[df$value_scaled < df$target / 2] <- 'low'
  df$target_met[df$value_scaled >= df$target / 2 & df$value_scaled < df$target] <- 'medium'
  df$target_met[df$value_scaled >= df$target] <- 'high'
  df$target_met <- ordered(df$target_met)
  df$target_met <- ordered(df$target_met, levels = c("low", "medium", "high"))

  # Return dataframe
  return(df)
}
thelayc/laycOutcomes documentation built on May 31, 2019, 9:16 a.m.