A comprehensive framework for planning and executing analyses in R. It provides a structured approach to running the same function multiple times with different arguments, executing multiple functions on the same datasets, and creating systematic analyses across multiple strata or variables. The framework is particularly useful for applying the same analysis across multiple strata (e.g., locations, age groups), running statistical methods on multiple variables (e.g., exposures, outcomes), generating multiple tables or graphs for reports, and creating systematic surveillance analyses. Key features include efficient data management, structured analysis planning, flexible execution options, built-in debugging tools, and hash-based caching.

plnr is a framework for planning and executing analyses in R. Use it when you need to do one of these:
install.packages("plnr")
help(package="plnr") for the function documentation.library(plnr)
library(ggplot2)
library(data.table)
# Create a new plan
p <- Plan$new()
# Add data
p$add_data(
name = "deaths",
direct = data.table(deaths=1:4, year=2001:2004)
)
# Add analyses for different years
p$add_argset(name = "fig_1_2002", year_max = 2002)
p$add_argset(name = "fig_1_2003", year_max = 2003)
# Define analysis function
fn_fig_1 <- function(data, argset) {
plot_data <- data$deaths[year <= argset$year_max]
ggplot(plot_data, aes(x=year, y=deaths)) +
geom_line() +
geom_point(size=3) +
labs(title = glue::glue("Deaths from 2001 until {argset$year_max}"))
}
# Apply function to all argsets
p$apply_action_fn_to_all_argsets(fn_name = "fn_fig_1")
# Run analyses
p$run_one("fig_1_2002")
Contributions are welcome. Submit a Pull Request.
The MIT License covers this package. Read the LICENSE file for the full text.