R/testkit_functions.R

Defines functions hrs_diff tkit_time_bins tkit_non_resulted tkit_canceled

#' @export
tkit_canceled <- function(data, testkit_number_col) {
  canceled_tkits_num <- grep("*canceled*", testkit_number_col, value = TRUE)
  canceled_tkits_df <- dplyr::filter(data, testkit_number %in% canceled_tkits_num)
  cancel_free_tkits_df <- dplyr::filter(data, !(testkit_number %in% canceled_tkits_num))
  
  canceled_msg <- paste("There are", nrow(canceled_tkits_df), "tests canceled")
  
  return(list(cancel_msg = canceled_msg,
              canceled_testkits_df = canceled_tkits_df,
              cancel_free_data = cancel_free_tkits_df))
}




#' @export
#Current non-result-states include "PENDING" "FAILED"
tkit_non_resulted <- function(data, vec_test_result_states) {
  non_result_states <- dplyr::filter(data, test_result %in% vec_test_result_states)
  rm_result_states <- dplyr::filter(data, !(test_result %in% vec_test_result_states))
  
  return(list(non_result_states, rm_result_states))
}

#' @export
tkit_time_bins <- function(date_col_prior, date_col_latter) {
  diff_hrs <- difftime(date_col_prior, date_col_latter, units = c('hours'))
  diff_hrs <- ifelse(is.na(diff_hrs), -1, diff_hrs)
  diff_hrs <- diff_hrs %>% as.integer()
  
  diff_hrs_cat <- cut(diff_hrs, breaks = c(-1,0,24,48,72,96, Inf),
                      right = FALSE)
  return(list(diff_hrs_col = diff_hrs, diff_cat_col = diff_hrs_cat))
}

# -------------------------------------------------------------------------
#' @export
hrs_diff <- function(date_col_prior, date_col_latter) {
  diff_hrs <- difftime(date_col_prior, date_col_latter, units = c('hours'))
  diff_hrs <- ifelse(is.na(diff_hrs), -1, diff_hrs)
  diff_hrs <- diff_hrs %>% as.integer()
  
  diff_hrs_cat <- cut(diff_hrs, breaks = c(-1,0,24,48,72,96, Inf),
                      right = FALSE)
  return(list(
    diff_hrs_col = diff_hrs, 
    diff_cat_col = diff_hrs_cat))
}
virusgeeks/vgtools documentation built on April 25, 2022, 12:38 p.m.