別のRパッケージでS4クラスと同じ名前のS4クラスを使用/保守する方法は?他のRパッケージのS4クラスと同じ名前のS4クラスを使用/保守する方法は?
私は、 'FeatureSet'という名前のS4クラスを含む大きなRパッケージを書いています。残念ながら、これは広く使われている「オリゴ」パッケージの仮想S4クラスの名前です。私が最初に私のパッケージをロードした後、オリゴ、および
new("FeatureSet")
を呼び出すと、私はエラーNAMESPACEファイルで
Error in new("FeatureSet") :
trying to generate an object from a virtual class ("FeatureSet")
を取得し、私は「exportClasses」と輸出へ「exportClassPattern」を含む試してみましたこのS4の定義、またはすべてのS4の定義は、私のパッケージから運がない。また、これらのジェネリックのメソッドを私のパッケージに定義しているので、
も含まれています。
同じ名前の複数の定義が添付されている場合、特定のS4定義のみを認識するためのRコードを記述するベストプラクティスの方法はありますか?もちろん、私のクラスに別の名前を付けることもできますが、将来私のクラスが他のパッケージのクラスと衝突しないようにする方法が必要です。私はかなりの時間を通常のフォーラムやドキュメンテーションで見てきましたが、この質問にはどこにも答えられていないことに驚きました。前もって感謝します!
ありがとう、@ Martin-Morgan!私は 'where = getNameSpace(" MyPackage ")'の代わりに 'envir = as.environment(" MyPackage ")'を使うようにしていましたが、上記のようなもので遊んでいました。私は先に進んで、私のパッケージ内のすべてのS4クラス名に接頭辞を追加することに決めました(その多くはFeatureSetのようなかなり一般的な名前を持っています)。 –