From 0e58b867dbb59e733b09d8a71c4fe99de935a4e5 Mon Sep 17 00:00:00 2001 From: egouldo Date: Sat, 10 Aug 2024 21:19:36 +1000 Subject: [PATCH] fix #76 move transformation_tbl to internally exported pkg object --- R/clean_response_transformation.R | 34 +++++++++------------------- R/sysdata.rda | Bin 5398 -> 5599 bytes data-raw/create_internal_pkg_data.R | 23 +++++++++++++++++++ 3 files changed, 34 insertions(+), 23 deletions(-) diff --git a/R/clean_response_transformation.R b/R/clean_response_transformation.R index a146883..b7f24aa 100644 --- a/R/clean_response_transformation.R +++ b/R/clean_response_transformation.R @@ -1,34 +1,22 @@ #' Clean response transformation variable #' @description Cleans the response transformation variable to the names of the back-transformation functions #' -#' @param response_transformation A character vector with the +#' @param response_transformation A character vector with the response transformation values +#' @param transformation_tbl A tibble of the response transformation values `transformation_orig` and their cleaned names `cleaned_transformation` +#' #' #' @return A character vector of cleaned response transformation values equal to the required `transformation` values in `conversion()` #' @export -#' +#' @details +#' The `transformation_tbl` is a tibble of the response transformation values `transformation_orig` and their cleaned +#' names `cleaned_transformation`. The `transformation_orig` values are the original response transformation values +#' used by the analyst. The `cleaned_transformation` values are the cleaned response transformation values that are equal to the required `transformation` values in [conversion()]. +#' The user can supply an alternate table of transformations depending on what is required for the back-transformation functions. #' @family back-transformation functions -clean_response_transformation <- function(response_transformation) { +clean_response_transformation <- function(response_transformation, + transformation_tbl = ManyEcoEvo:::transformation_tbl) { original_data <- tibble(transformation_orig = response_transformation) - - transformation_tbl <- tribble( - ~transformation_orig, ~cleaned_transformation, - "^2", "square", - "power2", "square", - "^3", "cube", - "power3", "cube", - "squared", "square", - "cubed", "cube", - "scaled and centered", "identity", - "scaling and centering", "identity", - "mean centered and standardized", "identity", - "log", "log", - "orderNorm", NA, # TODO, ensure that this is the best behaviour - we need to exclude this first, rather than let it through here.. because else it gets passed through identity_back() inside conversion() - "divided.by.14", "divided.by.14", - "square.root", "square_root", - "back.transformed", "back.transformed", - "z.score", "identity", - "(power3)/100", "(power3)/100" - ) # TODO double-check treatment of z.score + out <- original_data %>% left_join(transformation_tbl) %>% select(cleaned_transformation) %>% # TODO WHAT ABOUT MISSING NON-STANDARD TRANSFORMATIONS?? diff --git a/R/sysdata.rda b/R/sysdata.rda index dfc8af0902ac6196e17522e1101dcdd59c8a7b0e..97f8a4bcf51acd37c934aed0ffedd5216d254005 100644 GIT binary patch literal 5599 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 literal 5398 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