# roxygen2

# Documenting a package with roxygen2

# Writing with roxygen2

roxygen2 (opens new window) is a package created by Hadley Wickham to facilitate documentation.

It allows to include the documentation inside the R script, in lines starting by #'. The different parameters passed to the documentation start with an @, for example the creator of a package will by written as follow:

#' @author The Author

For example, if we wanted to document the following function:

mean<-function(x) sum(x)/length(x)

We will want to write a small description to this function, and explain the parameters with the following (each line will be explained and detailed after):

#' Mean
#' A function to compute the mean of a vector
#' @param x A numeric vector
#' @keyword mean
#' @importFrom base sum
#' @export
#' @examples
#' mean(1:3)
#' \dontrun{ mean(1:1e99) }
mean<-function(x) sum(x)/length(x)

  • The first line #' Mean is the title of the documentation, the following lines make the corpus.
  • Each parameter of a function must be detailed through a relevant @param. @export indicated that this function name should be exported, and thus can be called when the package is loaded.
  • @keyword provides relevant keywords when looking for help
  • @importFrom lists all functions to import from a package that will be used in this function or in you package. Note that importing the complete namespace of a package can be done with @import
  • The examples are then written below the @example tag.
    • The first one will be evaluated when the package is built;
    • The second one will not - usually to prevent long computations - due to the \dontrun command.

    # Building the documentation

    The documentation can be created using devtools::document(). Note also that devtools::check() will automatically create a documentation and will report missing arguments in the documentation of functions as warnings.

    # Parameters

    Parameter details
    author Author of the package
    examples The following lines will be examples on how to use the documented function
    export To export the function - i.e. make it callable by users of the package
    import Package(s) namespace(s) to import
    importFrom Functions to import from the package (first name of the list)
    param Parameter of the function to document