R包开发 - 函数别名

aL3*_*3xa 25 r package

我正在开发一个R包,我想设置一些函数别名,例如,如果我已经定义了一个名为的函数foo,我希望它也可以在bar符号下使用.请注意,我知道@alias标签,但这不是我想要的.我应该创建一个新文件(可能aliases.R)并将所有别名放在那里吗?

Jos*_*ich 33

您可以定义bar何时定义foo.

foo <- bar <- function(x, y, z) {
  # function body goes here
}
Run Code Online (Sandbox Code Playgroud)

  • @rmf:你需要在一个新问题中提供更多细节.我的猜测是你使用的是roxygen2,它只导出第一个函数. (5认同)

Duc*_*mas 17

我找到了这个答案,因为也遇到了foo <- bar <- function(x)...无法导出的问题,bar因为我正在使用royxgen2. 我直接去了royxgen2源代码,找到了他们的方法:

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

#' @rdname foo
#' @examples bar("hello")
#' @export
bar <- foo
Run Code Online (Sandbox Code Playgroud)

这将自动做三件事:

  1. 添加bar为的别名foo(因此无需使用@alias标签)。
  2. 添加bar到的使用部分?foo(所以不需要添加@usage标签)。
  3. 如果您为@examples别名提供(注意复数),它会将示例添加到?foo.