aL3xa
aL3xa

Reputation: 36120

R package development - function aliases

I'm developing an R package, and I'd like to set some function aliases, e.g. if I have defined a function named foo, I'd like it to be available under bar symbol too. Note that I'm aware of @alias tag, but that's not what I want. Should I create a new file (probably aliases.R) and put all aliases there?

Upvotes: 35

Views: 4244

Answers (2)

DuckPyjamas
DuckPyjamas

Reputation: 1659

I found this answer because also ran into the problem where foo <- bar <- function(x)... would fail to export bar because I was using royxgen2. I went straight to the royxgen2 source code and found their approach:

#' Title
#'
#' @param x 
#'
#' @return
#' @export
#'
#' @examples
#' foo("hello")
foo <- function(x) {
    print(x)
}

#' @rdname foo
#' @examples bar("hello")
#' @export
bar <- foo

This will automatically do three things:

  1. Add bar as an alias of foo (so no need to use @alias tag).
  2. Add bar to the Usage section of ?foo (so no need to add @usage tag).
  3. If you provide @examples (note the plural) for the alias, it will add the examples to ?foo.

Upvotes: 31

Joshua Ulrich
Joshua Ulrich

Reputation: 176738

You could just define bar when you define foo.

foo <- bar <- function(x, y, z) {
  # function body goes here
}

Upvotes: 36

Related Questions