# NOT RUN {
require(tidyverse)
#Make data frame with multiple summary columns
temp_summary <-
heart_disease %>%
group_by(
Sex,
HeartDisease,
BloodSugar
) %>%
summarise(
Mean = mean(Age, na.rm = TRUE),
SD = sd(Age, na.rm = TRUE),
Median = median(Age, na.rm = TRUE)
) %>%
ungroup()
#1) Span summaries for each combination of Sex and BloodSugar
temp_summary %>%
stretch(
keys = c("Sex", "BloodSugar"),
keep = "HeartDisease"
)
#2) If "HeartDisease" wasn't fully crossed, use different joining to get only matching groups
temp_summary %>%
stretch(
keys = c("Sex", "BloodSugar"),
keep = "HeartDisease",
join = inner_join
)
#3) Only send two of the summaries
temp_summary %>%
stretch(
keys = c("Sex", "BloodSugar"),
keep = "HeartDisease",
send = c("Mean", "Median")
)
#4) Clean HTML table with keys spanned over columns
result <-
temp_summary %>%
stretch(
keys = c("Sex", "BloodSugar"),
keep = "HeartDisease",
extract_keys_as_header = TRUE,
keep_keys_in_header = FALSE
)
result$.result %>%
knitr::kable(format = "html") %>%
kableExtra::kable_styling() %>%
kableExtra::add_header_above(
kableExtra::auto_index(result$.header)
)
# }
Run the code above in your browser using DataLab