From 67d2e49c766c0f05c9a41fb62e376e1d0a25de13 Mon Sep 17 00:00:00 2001 From: tomaszaba Date: Wed, 25 Feb 2026 10:51:47 +0200 Subject: [PATCH 1/3] make DoS and DoB work in mfaz wrangling --- R/module-data-wrangling.R | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/R/module-data-wrangling.R b/R/module-data-wrangling.R index fe2e5db..56a8335 100644 --- a/R/module-data-wrangling.R +++ b/R/module-data-wrangling.R @@ -193,13 +193,18 @@ module_server_wrangling <- function(id, data) { data() |> dplyr::mutate( - muac = mwana::recode_muac(x = !!rlang::sym(input$muac), .to = "cm") - ) |> - dplyr::rename( - age = !!rlang::sym(input$age), + muac = mwana::recode_muac(!!rlang::sym(input$muac), "cm"), + dos = as.Date(!!rlang::sym(input$dos), format = "%d/%m/%Y"), + dob = as.Date(!!rlang::sym(input$dob), format = "%d/%m/%Y"), + age = as.numeric(!!rlang::sym(input$age)), sex = !!rlang::sym(input$sex) ) |> - mwana::mw_wrangle_age(dos = NULL, dob = NULL, age = .data$age) |> + mwana::mw_wrangle_age( + dos = .data$dos, + dob = .data$dob, + age = .data$age, + .decimals = 2 + ) |> mwana::mw_wrangle_muac( sex = .data$sex, .recode_sex = TRUE, @@ -259,7 +264,7 @@ module_server_wrangling <- function(id, data) { ) } ) - +print(w) dataset$wrangled <- w }, error = function(e) { From 2f1fa4cdcfede1d8fce74513ecdeafc300189f88 Mon Sep 17 00:00:00 2001 From: tomaszaba Date: Wed, 25 Feb 2026 10:56:05 +0200 Subject: [PATCH 2/3] make DoS and DoB work in wrangling for combined prev --- R/module-data-wrangling.R | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/R/module-data-wrangling.R b/R/module-data-wrangling.R index 56a8335..73f62fd 100644 --- a/R/module-data-wrangling.R +++ b/R/module-data-wrangling.R @@ -239,10 +239,10 @@ module_server_wrangling <- function(id, data) { data() |> dplyr::mutate( - muac = mwana::recode_muac(x = !!rlang::sym(input$muac), .to = "cm") - ) |> - dplyr::rename( - age = !!rlang::sym(input$age), + muac = mwana::recode_muac(!!rlang::sym(input$muac), "cm"), + dos = as.Date(!!rlang::sym(input$dos), format = "%d/%m/%Y"), + dob = as.Date(!!rlang::sym(input$dob), format = "%d/%m/%Y"), + age = as.numeric(!!rlang::sym(input$age)), sex = !!rlang::sym(input$sex), weight = !!rlang::sym(input$weight), height = !!rlang::sym(input$height) @@ -253,7 +253,7 @@ module_server_wrangling <- function(id, data) { weight = .data$weight, height = .data$height ) |> - mwana::mw_wrangle_age(dos = NULL, dob = NULL, age = .data$age) |> + mwana::mw_wrangle_age(.data$dos, .data$dob, .data$age) |> mwana::mw_wrangle_muac( sex = .data$sex, .recode_sex = FALSE, From 6c20e5258bf82abdb5755e6aa5befdfad3e57ace Mon Sep 17 00:00:00 2001 From: tomaszaba Date: Wed, 25 Feb 2026 13:07:40 +0200 Subject: [PATCH 3/3] Closes #37 --- R/module-data-wrangling.R | 70 +++++++++++++++++++++++++++++++++------ 1 file changed, 59 insertions(+), 11 deletions(-) diff --git a/R/module-data-wrangling.R b/R/module-data-wrangling.R index 73f62fd..f4f645b 100644 --- a/R/module-data-wrangling.R +++ b/R/module-data-wrangling.R @@ -175,12 +175,32 @@ module_server_wrangling <- function(id, data) { w <- switch(EXPR = input$wrangle, "wfhz" = { shiny::req(input$sex, input$weight, input$height) - data() |> - dplyr::rename( + + ### Wrangle age dynamically ---- + df <- if (nzchar(input$dos)) { + dplyr::mutate( + .data = data(), + dos = as.Date(!!rlang::sym(input$dos), format = "%d/%m/%Y"), + dob = as.Date(!!rlang::sym(input$dob), format = "%d/%m/%Y"), + age = as.numeric(!!rlang::sym(input$age)), sex = !!rlang::sym(input$sex), weight = !!rlang::sym(input$weight), height = !!rlang::sym(input$height) ) |> + mwana::mw_wrangle_age(.data$dos, .data$dob, .data$age) + } else { + dplyr::mutate( + .data = data(), + dos = NULL, + dob = NULL, + sex = !!rlang::sym(input$sex), + weight = !!rlang::sym(input$weight), + height = !!rlang::sym(input$height) + ) + } + + ### Wrangle WFHZ data ---- + df |> mwana::mw_wrangle_wfhz( sex = .data$sex, .recode_sex = TRUE, @@ -188,23 +208,34 @@ module_server_wrangling <- function(id, data) { height = .data$height ) }, + "mfaz" = { shiny::req(input$age, input$sex, input$muac) - data() |> + ### Wrangle age dynamically ---- + df <- if (nzchar(input$dos)) { dplyr::mutate( + .data = data(), muac = mwana::recode_muac(!!rlang::sym(input$muac), "cm"), dos = as.Date(!!rlang::sym(input$dos), format = "%d/%m/%Y"), dob = as.Date(!!rlang::sym(input$dob), format = "%d/%m/%Y"), age = as.numeric(!!rlang::sym(input$age)), sex = !!rlang::sym(input$sex) ) |> - mwana::mw_wrangle_age( - dos = .data$dos, - dob = .data$dob, - age = .data$age, - .decimals = 2 + mwana::mw_wrangle_age(.data$dos, .data$dob, .data$age) + } else { + dplyr::mutate( + .data = data(), + muac = mwana::recode_muac(!!rlang::sym(input$muac), "cm"), + dos = NULL, + dob = NULL, + sex = !!rlang::sym(input$sex) ) |> + mwana::mw_wrangle_age(NULL, NULL, .data$age) + } + + ### Wrangle MUAC ---- + df |> mwana::mw_wrangle_muac( sex = .data$sex, .recode_sex = TRUE, @@ -237,8 +268,10 @@ module_server_wrangling <- function(id, data) { input$muac ) - data() |> + ### Wrangle age dynamically ---- + df <- if (nzchar(input$dos)) { dplyr::mutate( + .data = data(), muac = mwana::recode_muac(!!rlang::sym(input$muac), "cm"), dos = as.Date(!!rlang::sym(input$dos), format = "%d/%m/%Y"), dob = as.Date(!!rlang::sym(input$dob), format = "%d/%m/%Y"), @@ -247,13 +280,28 @@ module_server_wrangling <- function(id, data) { weight = !!rlang::sym(input$weight), height = !!rlang::sym(input$height) ) |> + mwana::mw_wrangle_age(.data$dos, .data$dob, .data$age) + } else { + dplyr::mutate( + .data = data(), + muac = mwana::recode_muac(!!rlang::sym(input$muac), "cm"), + dos = NULL, + dob = NULL, + sex = !!rlang::sym(input$sex), + weight = !!rlang::sym(input$weight), + height = !!rlang::sym(input$height) + ) |> + mwana::mw_wrangle_age(NULL, NULL, .data$age) + } + + ### Wrangle WHZ and MUAC data ---- + df |> mwana::mw_wrangle_wfhz( sex = .data$sex, .recode_sex = TRUE, weight = .data$weight, height = .data$height ) |> - mwana::mw_wrangle_age(.data$dos, .data$dob, .data$age) |> mwana::mw_wrangle_muac( sex = .data$sex, .recode_sex = FALSE, @@ -264,7 +312,7 @@ module_server_wrangling <- function(id, data) { ) } ) -print(w) + dataset$wrangled <- w }, error = function(e) {