如何在R包中给数据起别名?

时间:2019-07-12 20:07:22

标签: r roxygen2

在R包中为函数提供别名很简单。例如。

#' @rdname my_function_name
my_alias <- my_function_name

对于包含在软件包中的数据文件如何实现相同的目的?

到目前为止我尝试过的一切

我不知道如何给R包中的数据文件起别名。但是,我可以简单地将相同文件放入软件包两次,然后第二次使用不同的名称。这显然会占用不必要的空间,因此,如果可能的话,我想找到一种更好的方法。

1 个答案:

答案 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都通过了?