R/get_crashflags_vehicle.R

Defines functions relabel_vehicle_variables

Documented in relabel_vehicle_variables

#' Relabels vehtype
#'
#' Relabels VEHTYPE into 9 categories or get CMV vehicles. CMV needs TKBSCFG
#' \emph{TKBSCFG}. Large trucks are not always a CMV and vice versa (we don't typically use this query).
#' @param vehicle_df vehicle dataframe
#' @param relabel_by select either/all ("vehtype", "cmv)
#'
#' @return df with veh or cmv colnames
#' @export
#'
#' @examples
#' \dontrun{relabel_vehicle_variables(vehicle)}
relabel_vehicle_variables <-
  function(vehicle_df, relabel_by = "vehtype") {
    if (relabel_by %in% "vehtype") {
      vehicle_df = vehicle_df |> dplyr::mutate(
        veh =
          dplyr::case_when(
            .data[["VEHTYPE"]]  %in% c("Motorcycle", "Moped") ~ "Motorcycle/Moped",
            .data[["VEHTYPE"]]  == "POLICE ON EMERGENCY" &
              .data[["UNITTYPE"]]  == "Motorcycle" ~ "Motorcycle/Moped",
            .data[["VEHTYPE"]] %in% c(
              "Passenger Car",
              "(Sport) Utility Vehicle",
              "Cargo Van (10,000 Lbs or Less)",
              "Passenger Van",
              "Utility Truck/Pickup Truck"
            ) ~ "Passenger Vehicle",
            .data[["VEHTYPE"]] %in% c(
              "Straight Truck",
              "Truck Tractor (Trailer Not Attached)",
              "Truck Tractor (Trailer Attached)",
              "Truck Tractor (More Than One Trailer)"
            ) ~ "CMV",
            # TKBSCFG != "" ~ "CMV",
            .data[["VEHTYPE"]] %in% c(
              "ATV/UTV (Utility Terrain Vehicle)",
              "UTV (Utility Terrain Vehicle)",
              "ATV"
            ) ~ "ATV/UTV",
            .data[["VEHTYPE"]] == "Bicycle" ~ "Bicycle",
            .data[["VEHTYPE"]] %in% c("School Bus", "Pupil Transportation School Bus") ~ "School Bus",
            # .data[["VEHTYPE"]] %in% c("Moped", "Motorcycle") ~ "Moped/Motorcycle",
            grepl("Emergency|EMERGENCY", .data[["VEHTYPE"]]) ~ "Emergency Vehicle",
            grepl("Bus", .data[["VEHTYPE"]]) ~ "School/Passenger Bus",
            # .data[["VEHTYPE"]] %in% c("POLICE ON EMERGENCY") ~ "Emergency Vehicle"
            # TRUE ~ .data[["VEHTYPE"]]
            TRUE ~ "Other"
          )
      )
    }
    if (relabel_by %in% "cmv") {
      vehicle_df = dplyr::mutate(vehicle_df, cmv = ifelse(.data[["TKBSCFG"]] != "", "Y", "N"))
    }
    vehicle_df
  }
jacciz/wisdotcrashdatabase documentation built on June 3, 2023, 2:26 a.m.