r - 获取命名包中函数的函数参数

标签 r r-package

我正在尝试获取函数的参数,其中函数名称存储为字符串func_name。通常我会以 formals(func_name) 的方式执行此操作,效果很好。但是,我有一个特殊情况,其中 func_name 还附加了包名称,例如package::func_name

问题是调用 formals(package::func_name) 我得到:

Error in get(fun, mode = "function", envir = envir) : 
  object 'package::func_name' of mode 'function' was not found

如果我删除 package:: 位,这就会起作用,因此问题显然是 package:: 的存在。

我需要这样做的原因是因为 formals() 命令位于我维护的 R 包内的函数内,并且我想从我正在构建的另一个包中调用此函数。因此,我必须在调用中使用 package::func_name 语法。

有没有办法以某种方式修改 formals() 命令以接受 package::func_name 格式?我想我也可以删除字符串的 package:: 部分,但这看起来有点hacky。有什么建议吗?

最佳答案

您可以指定代表包的 namespace 的环境,例如:

formals('gls', envir=getNamespace('nlme'))

关于r - 获取命名包中函数的函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74400122/

相关文章:

r - NA 子集如何工作?

r - rCharts 中的 nPLot x 轴日期变量和默认堆叠条形图

r - 我可以将 R 包仅提供给选定的用户吗?

r - 在 R 包中创建 S3 类

带有 Rcpp 和 CMake 的 R 包(Windows)

r - 如何在列中的每一行字符串之前添加变量(列)名称

r - 自动安装自制包的依赖库

r-package - 使用 rstan::rstan.package.sculpture 添加到现有 R 包

r - R包的Gitignore man目录?

r - 如何优雅地选择和应用校准功能,也许使用 ddply?