【发布时间】:2026-01-08 06:30:02
【问题描述】:
我想在 roxygen2 制作的 R 包中创建两个完全相同但名称不同的函数。
期望的结果
为了清楚起见,假设
first <- function(x) {
x + 2
}
我想要另一个函数second 这样
identical(first, second)
# [1] TRUE
到目前为止我所知道的
A function can be given an alias,但这并不意味着它的别名是一个可调用的函数——而是意味着你可以将?myalias 调用到display the help file for the original function。但是myalias 不是包中的可调用函数 - 即,除了? 之外,您实际上不能将其用于任何其他用途。
来自 Hadley 的文档:
别名是主题的另一个名称,可以与 ? 一起使用。
一个不优雅的解决方案
通过蛮力可以使用两个不同名称的相同函数 - 即通过复制声明原始函数的文件并在重复代码中简单地更改其名称。
这显然是乏味的,违反了DRY,并引入了膨胀。
问题
有没有更好的方法;不涉及大规模重复代码的一种?
【问题讨论】: