私のRパッケージは内部変数を使用していますx
。パッケージをロードすると(使用してみただけですdevtools::load_all
)、リストにx
表示されませんが、値はあります。ls()
どうすればこれを回避できますか?
ユーザーがで変数にアクセスできるのは問題ありmyPackage::x
ませんが、単にではありませんx
。
私のRパッケージは内部変数を使用していますx
。パッケージをロードすると(使用してみただけですdevtools::load_all
)、リストにx
表示されませんが、値はあります。ls()
どうすればこれを回避できますか?
ユーザーがで変数にアクセスできるのは問題ありmyPackage::x
ませんが、単にではありませんx
。
load_all
関数には引数export_all
があります。
から?load_all
TRUE(デフォルト)の場合、すべてのオブジェクトをエクスポートします。FALSEの場合、NAMESPACEファイルにエクスポートとしてリストされているオブジェクトのみをエクスポートします。
だから、export_all=FALSE
あなたのload_all
呼び出しで使用してみてください。
最初にパッケージをビルドしてみて、問題がまだ存在するかどうかを確認してください。パッケージからのエクスポートはNAMESPACE
ファイルで定義されています。を使用するdevtools::load_all
と、名前空間はロードされません(ここを参照)。これとパッケージの構築について詳しくは、マニュアルの「R拡張機能の作成」を参照してください。
NAMESPACEファイルでデフォルトのエクスポートパターンを使用している可能性があります。パッケージで確認してください。次のようになっている場合は、次のようになります。
exportPattern("^[^\\.]")
次に、パッケージはドットで始まらない名前空間からすべてをエクスポートします。だからあなたはそれを呼ぶか.x
、例えばに変更しexportPattern()
ます...
export(myfun1, myfun2)
myfun1
関数とmyfun2
パッケージからエクスポートします。エクスポートするものを明示的に定義することにより、必要のないときに何かが利用可能になるのを回避できます。