#' Produce ggplot to represent summary statistics graphically, either boxplot or barchart
#'
#' @param variable A variable of interest to be summarised. Works for several classes: numeric, integer, factor, character.
#' @param arm A variable to break down the summary by, typically an arm in a RCT. Or a constant variable for 1-armed study
#' @param label a text string to label the variable by, used to add in units or full words with spaces rather than acronyms. Defaults to NULL.
#' @param data optional a data frame, or envirnoment, in which to find the variable and arm values. Defaults to parent.frame()
#' @param ... list of other values to input into the aes() function
#' @return a ggplot object, either a boxplot or barchart
#'
#' @import ggplot2
#' @export
sumfig <- function(variable,
arm,
label = NULL,
data = parent.frame(),
...
){
variable_name <- deparse(substitute(variable))
if(is.null(label)){label <- variable_name}
mf <- match.call()
variable <- eval(mf$variable, envir = data)
arm <- eval(mf$arm, envir = data)
data <- data.frame(variable = variable, arm = arm)
# produce boxplot by arm for continuous variables
if(inherits(variable,c("numeric","integer"))){
fig <- ggplot(data = data, aes(x = arm, y = variable), ... = ...) +
geom_boxplot() +
theme(axis.title.x = element_blank()) +
labs(y = label)
}
# produce bar chart by arm for categorical variables
if(inherits(variable, c("factor","character"))){
fig <- ggplot(data = data, aes(x = arm, fill = variable), ... = ...) +
geom_bar() +
theme(axis.title.x = element_blank()) +
labs(fill = label)
}
fig
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.