JD *_*ong 28 namespaces r
我正在尝试改变R中包中的一些命令的功能.很容易看到命令的来源.但是,该函数调用包命名空间中的其他函数.这些函数不是导出的对象.那我该如何访问它们呢?
具体示例:如何访问copula :: rmvdc中使用的asCall()函数?
require(copula)
copula::rmvdc
getAnywhere("asCall")
Run Code Online (Sandbox Code Playgroud)
所以as.Call()
在copula包中存在,但我该如何访问它?
> copula::asCall
Error: 'asCall' is not an exported object from 'namespace:copula'
Run Code Online (Sandbox Code Playgroud)
Sha*_*ane 65
试试这个:
copula:::asCall
Run Code Online (Sandbox Code Playgroud)
这是之前在R-help上回答的.该函数未在包命名空间中导出,因此您需要使用:::
运算符.通常,功能在不用于一般用途时不会导出(例如,在这种情况下您不需要记录它们).
tim*_*tim 13
在开发时,?assignInNamespace 非常有用.
这允许您将未导出函数的新副本注入包的命名空间.
如果R的错误消息更有帮助,那就太好了.代替:
Error: 'matrixToPaths' is not an exported object from 'namespace:OpenMx'
Run Code Online (Sandbox Code Playgroud)
为什么不添加:
You might try OpenMx:::matrixToPaths"
Run Code Online (Sandbox Code Playgroud)