Chapter 3 Demographics variables
##Demographic Collection Form
Demographic Variables
DCF Variables
#Anthrometropretic Measures {#weight}
weight_measures <- comparison1 |>
#filter for bmi measures and height measure in label
filter(grepl("bmi|height", Label, ignore.case = TRUE)) |>
mutate(
Project = case_when(
In_MAXED ==TRUE & In_MR21 ==TRUE ~ paste(tag_maxed, tag_mr21),
In_MAXED == TRUE ~ tag_maxed,
In_MR21 == TRUE ~ tag_mr21))
# ----------------------------------------------------
# TOGGLE BUTTONS
# ----------------------------------------------------
toggle_html1 <- HTML("
<div style='margin-bottom:10px;'>
<button class='toggle-btn btn-shared' onclick=\"filterTable('shared')\">Shared</button>
<button class='toggle-btn btn-maxed' onclick=\"filterTable('maxed')\">MAXED</button>
<button class='toggle-btn btn-mr21' onclick=\"filterTable('mr21')\">MR21</button>
</div>
<script>
function filterTable(category){
var table = $('#weight_measures').DataTable();
if(category === 'all'){
table.column(5).search('').draw();
} else {
table.column(5).search(category).draw();
}
}
</script>
")
# ----------------------------------------------------
# DATATABLE (FULL WIDTH + SCROLLABLE)
# ----------------------------------------------------
tbl_anthro <- htmltools::div(style = "width: 100%; overflow-x: auto;",
datatable(
weight_measures %>%
select(ProjectTag, Variable, Label, In_MAXED, In_MR21, VarFilter),
escape = FALSE,
rownames = FALSE,
filter = "top",
options = list(
dom = "Bfrtip",
buttons = c("csv"),
pageLength = 20,
scrollX = TRUE,
autoWidth = TRUE,
columnDefs = list(
list(visible = FALSE, targets = 5),
list(width = "60px", targets = 1), # Status
list(width = "180px", targets = 2), # Project
list(width = "250px", targets = 3) # Variable
)
),
container = tags$table(id = "weight_measures")
)
)
# ----------------------------------------------------
# COLLAPSIBLE SECTION
# ----------------------------------------------------
htmltools::tagList(
HTML("<details><summary><strong> Anthropometric
Variables </strong></summary>"),
toggle_html1,
tbl_anthro,
HTML("</details>")
)