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'
_
これを試して:
copula:::asCall
これは 以前はR-helpで回答済み でした。その関数はパッケージ名前空間にエクスポートされなかったため、代わりに:::
演算子を使用する必要があります。通常、関数は一般的な使用を目的としていない場合はエクスポートされません(たとえば、この場合、関数を文書化する必要はありません)。
開発時には、? assignInNamespace が非常に役立ちます。
これにより、エクスポートされていない関数の新しいコピーをパッケージの名前空間に挿入できます。
Rのエラーメッセージがもっと参考になれば幸いです。の代わりに:
Error: 'matrixToPaths' is not an exported object from 'namespace:OpenMx'
追加しないのはなぜですか:
You might try OpenMx:::matrixToPaths"