在R包中为函数提供别名很简单。例如。
#' @rdname my_function_name
my_alias <- my_function_name
对于包含在软件包中的数据文件如何实现相同的目的?
我不知道如何给R包中的数据文件起别名。但是,我可以简单地将相同文件放入软件包两次,然后第二次使用不同的名称。这显然会占用不必要的空间,因此,如果可能的话,我想找到一种更好的方法。
答案 0 :(得分:0)
好吧,我确实设法使变通方法对用户可见, 但感觉非常,非常骇客。 看起来像这样:
#' @export pkgdata
makeActiveBinding("pkgdata", env = asNamespace("mypkg"), fun = function(ignored) {
data("mydata", package = "mypkg", envir = environment())
mydata
})
通过在对envir = environment()
的调用中指定data
,我们确保数据已加载到函数的调用环境中,
因此可以随后将其退回。
之后,看来mypkg::pkgdata
会起作用,
并且如果您在pkgdata
的{{1}}中定义了@aliases
,
甚至mydata
都通过了?