documenting-functions.Rmd
One of the great advantages to packaging your code is that you can build function documentation into the package. This is handled by the roxygen2
package. To utilise this you need to create roxygen headers in the function. There are many resources to learn how to use roxygen2 - for instance here. The basic gist is that all the function details are laid out using special tags. As an example here is our function, dat_pre_proc()
with roxygen headers.
#' Data pre-processing function for grouped scaling and centering
#'
#' @param dat a \code{data.frame} of numerics
#' @param center \code{logical} do you want the values centred before scaling?
#'
#' @return \code{data.frame} of scaled values
#' @export
dat_pre_proc <- function(dat, center = TRUE) {
`%>%` <- magrittr::`%>%`
dat <- dat %>%
dplyr::group_by(grouping_var) %>%
dplyr::mutate_all(dplyr::funs(scale(., center = center)))
}
Note we must include the @export
tag if we want the function to be accessible to end-users. Otherwise the function will not be available after loading the package.
These roxygen headers are not optional if you wish to contribute the package. The package will not build if there are missing/incomplete headers. This sets the standard that any objects provided by your package have some minimal documentation.