相同的功能,但在使用 roxygen2 的 R 包中有两个不同的名称?
Same function but with two different names in an R package using roxygen2?
我想在 roxygen2 制作的 R 包中创建两个完全相同但名称不同的函数。
期望的结果
说得非常清楚,假设
first <- function(x) {
x + 2
}
我想要另一个函数 second
这样
identical(first, second)
# [1] TRUE
到目前为止我所知道的
, but that doesn't mean its alias is a callable function - rather, it means that you can call ?myalias
to display the help file for the original function。但是 myalias
是 不是 包中的可调用函数 - 也就是说,除了 ?
.
来自 Hadley 的文档:
An alias is another name for the topic that can be used with ?.
一个不优雅的解决方案
可以通过蛮力使用两个不同名称的相同函数 - 即通过复制声明原始函数的文件并在复制代码中简单地更改其名称。
这显然很乏味,违反了 DRY,并导致臃肿。
问题
有没有更好的方法;一个不涉及大规模代码重复的?
使用
#' @rdname first
#' @export
second <- first
你的例子
所以如果 first.R
最初看起来像这样
#' A function that adds 2
#' @name first
#' @usage first(x)
#' @param x a number
#' @export
first <- function(x) {
x + 2
}
然后像这样简单地包含额外的代码行(最后 3 行都是更改)
#' A function that adds 2
#' @name first
#' @usage first(x)
#' @param x a number
#' @export
first <- function(x) {
x + 2
}
#' @rdname first
#' @export
second <- first
我想在 roxygen2 制作的 R 包中创建两个完全相同但名称不同的函数。
期望的结果
说得非常清楚,假设
first <- function(x) {
x + 2
}
我想要另一个函数 second
这样
identical(first, second)
# [1] TRUE
到目前为止我所知道的
?myalias
to display the help file for the original function。但是 myalias
是 不是 包中的可调用函数 - 也就是说,除了 ?
.
来自 Hadley 的文档:
An alias is another name for the topic that can be used with ?.
一个不优雅的解决方案
可以通过蛮力使用两个不同名称的相同函数 - 即通过复制声明原始函数的文件并在复制代码中简单地更改其名称。
这显然很乏味,违反了 DRY,并导致臃肿。
问题
有没有更好的方法;一个不涉及大规模代码重复的?
使用
#' @rdname first
#' @export
second <- first
你的例子
所以如果 first.R
最初看起来像这样
#' A function that adds 2
#' @name first
#' @usage first(x)
#' @param x a number
#' @export
first <- function(x) {
x + 2
}
然后像这样简单地包含额外的代码行(最后 3 行都是更改)
#' A function that adds 2
#' @name first
#' @usage first(x)
#' @param x a number
#' @export
first <- function(x) {
x + 2
}
#' @rdname first
#' @export
second <- first