The goal of annotater is to annotate package load calls in character strings and R/Rmd files, so we can have an idea of the overall purpose of the libraries we’re loading.

What do my loaded packages do?

Where did I get them?

The two annotation types are also available together:

Thanks to Juan Cruz Rodriguez, we can now annotate which functions from each package are being called in a script.

pacman compatibility

Users of the pacman package can now use all annotater functions on p_load calls. This includes calls with multiple package names (e.g. p_load(ggplot2,purrr)), which will be split up across lines for readability.


Install the CRAN release or the development version with:

# Install annotater from CRAN:
# install.packages("remotes")

Restart RStudio after the installation for the addins to load properly.

When using the addins, make sure the focus (blinking cursor) is on an open RStudio R file in the ‘source’ pane.


These are the possible annotations, which can be added to character strings (with one line per element), or applied to .R or .Rmd files in RStudio through their corresponding addins.

test_string <-c("library(boot)\nrequire(Matrix)")

Entire .R files can also be parsed and annotated with the annotate_script function.

A note on the tidyverse

The tidyverse package is a meta-package with few exported functions of its own, so the annotation tools provided here (annotate_fun_calls) will not match the functions from the various individual packages (such as dplyr or readr) that get attached when loading tidyverse. This is by design, so consider loading individual packages if annotations for function calls are desired.

Feedback welcome

Thanks to Jonathan Carroll, Fırat Melih Yılmaz, and Achaz von Hardenberg for feedback and suggestions.