我正在尝试更改R中包中的一些命令的功能。很容易看到命令的来源。但是,该函数调用包命名空间中的其他函数。这些函数不是导出的对象。那我怎么才能访问它们呢?
具体示例: 我如何访问copula :: rmvdc中使用的asCall()函数?
require(copula)
copula::rmvdc
getAnywhere("asCall")
因此as.Call()
存在于copula包中,但我该如何访问它?
> copula::asCall
Error: 'asCall' is not an exported object from 'namespace:copula'
答案 0 :(得分:64)
试试这个:
copula:::asCall
这是previously answered on R-help。该函数未在包命名空间中导出,因此您需要使用:::
运算符。通常,功能在不用于一般用途时不会导出(例如,在这种情况下您不需要记录它们)。
答案 1 :(得分:12)
开发时,?assignInNamespace非常有用。
这允许您将未导出函数的新副本注入包的命名空间。
如果R&#39的错误消息更有帮助,那就太好了。而不是:
Error: 'matrixToPaths' is not an exported object from 'namespace:OpenMx'
为什么不添加:
You might try OpenMx:::matrixToPaths"