# NOT RUN {
l <- basic_table() %>%
split_cols_by("Species") %>%
analyze("Sepal.Length", afun = function(x) {
list(
"mean (sd)" = rcell(c(mean(x), sd(x)), format = "xx.xx (xx.xx)"),
"range" = diff(range(x))
)
})
l
build_table(l, iris)
# analyze multiple variables
l <- basic_table() %>%
split_cols_by("Species") %>%
analyze(c("Sepal.Length", "Petal.Width"), afun = function(x) {
list(
"mean (sd)" = rcell(c(mean(x), sd(x)), format = "xx.xx (xx.xx)"),
"range" = diff(range(x))
)
})
build_table(l, iris)
# an example more relevant for clinical trials
l <- basic_table() %>%
split_cols_by("ARM") %>%
analyze("AGE", afun = function(x) {
setNames(as.list(fivenum(x)), c("minimum", "lower-hinge", "median", "upper-hinge", "maximum"))
})
build_table(l, DM)
build_table(l, subset(DM, AGE > 40))
# with column counts
l2 <- l %>%
add_colcounts()
build_table(l2, DM)
# with column counts calculated based on different data
miniDM <- DM[sample(1:NROW(DM), 100),]
build_table(l2, DM, alt_counts_df = miniDM)
build_table(l, DM, col_counts = 1:3)
# }
Run the code above in your browser using DataLab