5 Suggested packages
Below is a long list of suggested packages for common epidemiological work in R. You can copy this code, run it, and all of these packages will install from CRAN and load for use in the current R session. If a package is already installed, it will be loaded for use only.
You can modify the code with #
symbols to exclude any packages you do not want.
Of note:
- Install the pacman package first before running the below code. You can do this with
install.packages("pacman")
. In this handbook we emphasizep_load()
from pacman, which installs the package if necessary and loads it for use in the current R session. You can also load packages that are already installed withlibrary()
from base R.
- In the code below, packages that are included when installing/loading another package are indicated by an indent and hash. For example how ggplot2 is listed under tidyverse.
- If multiple packages have functions with the same name, masking can occur when the function from the more recently-loaded package takes precedent. Read more in the R basics page. Consider using the package conflicted to manage such conflicts.
- See the R basics section on packages for more information on pacman and masking.
To see the versions of R, RStudio, and R packages used during the production of this handbook, see the page on Editorial and technical notes.
5.1 Packages from CRAN
##########################################
# List of useful epidemiology R packages #
##########################################
# This script uses the p_load() function from pacman R package,
# which installs if package is absent, and loads for use if already installed
# Ensures the package "pacman" is installed
if (!require("pacman")) install.packages("pacman")
# Packages available from CRAN
##############################
pacman::p_load(
# learning R
############
learnr, # interactive tutorials in RStudio Tutorial pane
swirl, # interactive tutorials in R console
# project and file management
#############################
here, # file paths relative to R project root folder
rio, # import/export of many types of data
openxlsx, # import/export of multi-sheet Excel workbooks
# package install and management
################################
pacman, # package install/load
renv, # managing versions of packages when working in collaborative groups
remotes, # install from github
# General data management
#########################
tidyverse, # includes many packages for tidy data wrangling and presentation
#dplyr, # data management
#tidyr, # data management
#ggplot2, # data visualization
#stringr, # work with strings and characters
#forcats, # work with factors
#lubridate, # work with dates
#purrr # iteration and working with lists
linelist, # cleaning linelists
naniar, # assessing missing data
# statistics
############
janitor, # tables and data cleaning
gtsummary, # making descriptive and statistical tables
rstatix, # quickly run statistical tests and summaries
broom, # tidy up results from regressions
lmtest, # likelihood-ratio tests
easystats,
# parameters, # alternative to tidy up results from regressions
# see, # alternative to visualise forest plots
# epidemic modeling
###################
epicontacts, # Analysing transmission networks
EpiNow2, # Rt estimation
EpiEstim, # Rt estimation
projections, # Incidence projections
incidence2, # Make epicurves and handle incidence data
i2extras, # Extra functions for the incidence2 package
epitrix, # Useful epi functions
distcrete, # Discrete delay distributions
# plots - general
#################
#ggplot2, # included in tidyverse
cowplot, # combining plots
# patchwork, # combining plots (alternative)
RColorBrewer, # color scales
ggnewscale, # to add additional layers of color schemes
# plots - specific types
########################
DiagrammeR, # diagrams using DOT language
incidence2, # epidemic curves
gghighlight, # highlight a subset
ggrepel, # smart labels
plotly, # interactive graphics
gganimate, # animated graphics
# gis
######
sf, # to manage spatial data using a Simple Feature format
tmap, # to produce simple maps, works for both interactive and static maps
OpenStreetMap, # to add OSM basemap in ggplot map
spdep, # spatial statistics
# routine reports
#################
rmarkdown, # produce PDFs, Word Documents, Powerpoints, and HTML files
reportfactory, # auto-organization of R Markdown outputs
officer, # powerpoints
# dashboards
############
flexdashboard, # convert an R Markdown script into a dashboard
shiny, # interactive web apps
# tables for presentation
#########################
knitr, # R Markdown report generation and html tables
flextable, # HTML tables
#DT, # HTML tables (alternative)
#gt, # HTML tables (alternative)
#huxtable, # HTML tables (alternative)
# phylogenetics
###############
ggtree, # visualization and annotation of trees
ape, # analysis of phylogenetics and evolution
treeio # to visualize phylogenetic files
)
5.2 Packages from Github
Below are commmands to install two packages directly from Github repositories.
- The development version of epicontacts contains the ability to make transmission trees with an temporal x-axis
- The epirhandbook package contains all the example data for this handbook and can be used to download the offline version of the handbook.
# Packages to download from Github (not available on CRAN)
##########################################################
# Development version of epicontacts (for transmission chains with a time x-axis)
pacman::p_install_gh("reconhub/epicontacts@timeline")
# The package for this handbook, which includes all the example data
pacman::p_install_gh("appliedepi/epirhandbook")