1.4 Examples
The following examples make use of the demo package roxygenExPkg
. The package can be installed as:
The command help(package = "roxygenExPkg")
will give you access to the package help.
1.4.1 General content organization
See the corresponding ?roxygenExPkg::fun_doc
.
#' Function Documentation Example
#'
#' Show an example of roxygen tags organization, providing documentation best
#' practices and guidelines. An explicit `@description` is only needed for
#' multi-paragraph descriptions.
#'
#' @param first_arg Description of the first argument. Also define data type /
#' class / structure / vectorization expectations where not obvious, and
#' possibly use (see 'Details').
#' @param second_arg Second argument of the function.
#'
#' @details More details or context about the function and its behaviour. List
#' possible side-effects, corner-cases and limitations here. Also use this
#' section for describing the meaning and usage of arguments when this is too
#' complex or verbose for the `@param` tags.
#'
#' @section Custom section:
#' The content of a custom section.
#'
#' @return Returns `NULL`, invisibly. The function is called for illustration
#' purposes only.
#'
#' @references
#' Hadley Wickham, Peter Danenberg and Manuel Eugster. roxygen2: In-Line
#' Documentation for R. [https://CRAN.R-project.org/package=roxygen2]().
#'
#' Hadley Wickham, The tidyverse style guide.
#' [https://style.tidyverse.org/documentation.html]().
#'
#' @seealso [fun_doc_tpl()], [roxygen2::roxygenize()]. Even if you just put
#' comma-separated links to functions, don't forget the final period (.).
#' @family function documentation examples
#'
#' @examples
#' # illustrate through examples how functions can be used
#' fun_doc("example_string", 3)
#'
#' @importFrom roxygen2 roxygenize
#' @importFrom roxygen2 roxygenise
#' @export
#'
#' @md
fun_doc <- function(first_arg, second_arg) {
invisible()
}
1.4.2 Templates and example scripts
See the corresponding ?roxygenExPkg::fun_doc_tpl
.
#' Template Documentation Example
#'
#' Show an example of roxygen tags organization, providing documentation best
#' practices and guidelines, using templates.
#'
#' @template param-first_arg
#' @param second_arg Description of the second argument.
#'
#' @template details-fun_doc
#'
#' @section Custom section:
#' The content of a custom section.
#'
#' @template return-NULL
#'
#' @template reference-roxygen2
#' @template reference-tidyverse_style_guide
#'
#' @seealso [fun_doc_tpl()], [roxygen2::roxygenize()]. Even if you just put
#' comma-separated links to functions, don't forget the final period (.).
#' @family function documentation examples
#'
#' @example man-roxygen/ex-fun_doc_tpl.R
#'
#' @importFrom roxygen2 roxygenize
#' @importFrom roxygen2 roxygenise
#' @export
#'
#' @md
fun_doc_tpl <- function(first_arg, second_arg) {
invisible()
}
1.4.3 @rdname
See the corresponding ?roxygenExPkg::divide
.
#' Scalar Division
#'
#' Divide an object by a scalar.
#'
#' @param x The object to be divided
#' @param d Scalar to divide `x` by.
#'
#' @return The result of the scalar division of `x`.
#'
#' @examples
#' x <- matrix(1:6, 3L)
#'
#' @name divide
#'
#' @md
NULL
#' @rdname divide
#'
#' @details `divide_by()` performes generic division by `d`.
#'
#' @examples
#' divide_by(x, 1.5)
#'
#' @export
#'
#' @md
divide_by <- function(x, d) {
x / d
}
#' @rdname divide
#'
#' @details `divide_by2()` performes division by two.
#'
#' @examples
#' divide_by2(x)
#'
#' @export
#'
#' @md
divide_by2 <- function(x) {
divide_by(x, 2)
}
#' @rdname divide
#'
#' @details `divide_by3()` performes division by three.
#'
#' @examples
#' divide_by3(x)
#'
#' @export
#'
#' @md
divide_by3 <- function(x) {
divide_by(x, 3)
}
#' @rdname divide
#'
#' @details `divide_by4()` performes division by four.
#'
#' @examples
#' divide_by4(x)
#'
#' @export
#'
#' @md
divide_by4 <- function(x) {
divide_by(x, 4)
}
1.4.4 @describeIn
See the corresponding ?roxygenExPkg::times
.
#' Scalar Multiplication
#'
#' Multiply an object by a scalar.
#'
#' @param x The object to be multiplied.
#' @param m Scalar to multiply `x` by.
#'
#' @return The result of the scalar multiplication of `x`.
#'
#' @describeIn times Generic multiplication by `m`.
#'
#' @examples
#' x <- matrix(1:6, 3L)
#'
#' times(x, 1.5)
#'
#' @export
#'
#' @md
times <- function(x, m) {
x * m
}
#' @describeIn times Multiplication by 2.
#'
#' @examples
#' times2(x)
#'
#' @export
#'
#' @md
times2 <- function(x) {
times(x, 2)
}
#' @describeIn times Multiplication by 3.
#'
#' @examples
#' times3(x)
#'
#' @export
#'
#' @md
times3 <- function(x) {
times(x, 3)
}
#' @describeIn times Multiplication by 4.
#'
#' @examples
#' times4(x)
#'
#' @export
#'
#' @md
times4 <- function(x) {
times(x, 4)
}