我正在尝试获取函数的参数,其中函数名称存储为字符串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/