首页 > 解决方案 > 在包内使用 makeActiveBinding

问题描述

我只需要一个 R 函数,例如:

> la. <- function (envir = globalenv()) {ls(all = T, envir = envir) }`

具有活动绑定,因此我确实需要键入括号

> makeActiveBinding('la', la., globalenv())

以便

> la
[1]  "la"  "la."

我现在想实现函数la()并将它绑定la在一个包内,这样当我加载包时,la就可以使用了。

如何将函数绑定到包环境la.()中的符号?la

我应该将什么值传递给envir函数的参数makeActiveBinding()

谢谢你的帮助

标签: r

解决方案


这可能是函数中要做的.onLoad事情,在你的包中是这样的:

NAMESPACE <- environment()

la. <- function(){ 
  ls(all = T, envir = globalenv())
}

.onLoad <- function(libname, pkgname) {
  makeActiveBinding("la", la., NAMESPACE)
}

推荐阅读