R/extract_param.R

Defines functions extract_param

Documented in extract_param

#' Extract
#'
#' @param .formula
#' @param ... unquoted column names supplying arguements to the function defined in \code{.formula}.
#' @return A logical vector.
#' @examples
#' @export

extract_param <- function(.df, .param_string = "Hardness (As CaCO3)", .label_string, ...) {

  group_var <- rlang::enquos(...)

  rename.vec <- c("RESULT_UNIT", "LAB_ANL_METHOD_NAME")

  param.df <- .df %>%
    dplyr::filter(CHEMICAL_NAME %in% .param_string) %>%
    rename_at(rename.vec, .funs = list(~ paste(.label_string, ., sep = "_"))) %>%
    dplyr::rename(!!rlang::sym(.label_string) := RESULT_NUMERIC) %>%
    dplyr::select(!!! group_var,
                  !!rlang::sym(.label_string),
                  dplyr::contains(paste0(.label_string, "_"))) %>%
    dplyr::distinct()

  final.df <- dplyr::left_join(.df, param.df,
                               by = c(rlang::set_names(sapply(group_var, quo_name))))
  return(final.df)
}


# test <- stream_chem.df %>%
#   tidyr::pivot_wider(
#     id_cols = NULL,
#     names_from = "CHEMICAL_NAME",
#     values_from = c("RESULT_NUMERIC", "RESULT_UNIT"),
#     names_sep = "_",
#     values_fn = list(CHEMICAL_NAME = mean,
#                      RESULT_UNIT = mean,
#                      na.rm = TRUE)
#   )
#
# test <- stream_chem.df %>%
#   group_by_at(vars(-RESULT_NUMERIC, -RESULT_UNIT)) %>%
#   mutate(n = n()) %>%
#   ungroup() %>%
#   filter(n > 1) %>%
#   select(n, everything()) %>%
#   arrange(CHEMICAL_NAME, SYS_SAMPLE_CODE)
BWAM/stayCALM documentation built on May 21, 2020, 3:24 p.m.