質問

debugオブジェクトを使用してスクリプトをデバッグするようにパッケージzooをロードしたとき、indexからの関数zoodebugパッケージによってマスクされました。indexをマスク解除するにはどうすればよいですか。一般的に、これらの名前を衝突する問題に対処する方法は?`動物園 'でdebugパッケージを使用しないでください。

役に立ちましたか?

解決

エクスポートされたシンボルは、常に::演算子で識別可能です。

zoo::index
.

ネームスペースで宣言されていない隠し関数は、:::(トリプルコロン)を使用して依然としてアクセスすることができ、例は

です。
zoo:::.onLoad
.

エクスポートされていなくても見ることができます。

他のヒント

マスクされた機能を持つパッケージをアンロードしてからリロードすることができます。SearchPathの優先順位を取り戻すには:

unloadNamespace("zoo")
library("zoo")
.

将来、その他の機能のマスキングを防止しながらパッケージをロードしたい場合は、検索パス内の任意の大きな数値を指定できます。

library("debug", pos = .Machine$integer.max)
.

それはあなたに隠されていますが、動物園関数がインデックスを使用しようとすると、それはまだ独自のインデックスを見つけようとします。

動物園にはtime.zooメソッドがありますので、ZooオブジェクトがZooオブジェクトである場合は、インデックス(z)の代わりに時間(z)を使用できます。

最後にZoo :: Indexを参照して動物園で1つを取得することを確認できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top