6

私のRパッケージは内部変数を使用していますx。パッケージをロードすると(使用してみただけですdevtools::load_all)、リストにx表示されませんが、値はあります。ls()どうすればこれを回避できますか?

ユーザーがで変数にアクセスできるのは問題ありmyPackage::xませんが、単にではありませんx

4

2 に答える 2

9

load_all関数には引数export_allがあります。

から?load_all

TRUE(デフォルト)の場合、すべてのオブジェクトをエクスポートします。FALSEの場合、NAMESPACEファイルにエクスポートとしてリストされているオブジェクトのみをエクスポートします。

だから、export_all=FALSEあなたのload_all呼び出しで使用してみてください。

于 2012-11-18T00:57:26.667 に答える
6

最初にパッケージをビルドしてみて、問題がまだ存在するかどうかを確認してください。パッケージからのエクスポートはNAMESPACEファイルで定義されています。を使用するdevtools::load_allと、名前空間はロードされません(ここを参照)。これとパッケージの構築について詳しくは、マニュアルの「R拡張機能の作成」を参照してください。

NAMESPACEファイルでデフォルトのエクスポートパターンを使用している可能性があります。パッケージで確認してください。次のようになっている場合は、次のようになります。

exportPattern("^[^\\.]")

次に、パッケージはドットで始まらない名前空間からすべてをエクスポートします。だからあなたはそれを呼ぶか.x、例えばに変更しexportPattern()ます...

export(myfun1, myfun2) 

myfun1関数とmyfun2パッケージからエクスポートします。エクスポートするものを明示的に定義することにより、必要のないときに何かが利用可能になるのを回避できます。

于 2012-11-18T00:30:43.623 に答える