This code snippet has nice examples of data wrangling
From https://www.jumpingrivers.com/blog/r-d3-intro-r2d3/
scoobydoo = tuesdata$scoobydoo
# wrangling data into nice shape
monsters_caught = scoobydoo %>%
select(date_aired, starts_with("caught")) %>%
mutate(across(starts_with("caught"), ~ as.logical(.))) %>%
pivot_longer(cols = caught_fred:caught_not,
names_to = "character",
values_to = "monsters_caught") %>%
drop_na() %>%
filter(!(character %in% c("caught_not", "caught_other"))) %>%
mutate(year = year(date_aired), .keep = "unused") %>%
group_by(character, year) %>%
summarise(caught = sum(monsters_caught),
.groups = "drop_last") %>%
mutate(
cumulative_caught = cumsum(caught),
character = str_remove(character, "caught_"),
character = str_to_title(character),
character = recode(character, "Daphnie" = "Daphne")
)