CLiREN-LMS
Data Visualization and Dashboards

Visualizing Missingness and Data Quality

Code Example 2

30-45 minutes Applied Step 7 of 9
Code

Code Example 2

7 / 9
Code

Code Example 2

r

due_outcome_missing_by_site <- prepared_data |>
  filter(day28_due_date <= Sys.Date()) |>
  group_by(site) |>
  summarise(
    outcomes_due = n_distinct(participant_id),
    outcomes_missing = sum(is.na(day28_outcome)),
    percent_missing = 100 * outcomes_missing / outcomes_due,
    .groups = "drop"
  )

due_outcome_missing_by_site |>
  ggplot(aes(x = reorder(site, percent_missing), y = percent_missing)) +
  geom_col() +
  coord_flip() +
  labs(
    title = "Missing Day 28 Outcomes Among Participants Due for Follow-Up",
    x = "Site",
    y = "Missing outcomes (%)"
  )