data.tableを使用するパッケージ(そして私はdplyrも信じています)は、R CMDチェックからこのNOTE(おそらく多く)を取得します。 何かできることはありますか? これは単なるメモなので無視できますが、それでも無視できます。
おそらく、これらのシンボルを検出し、パッケージ作成者に対してglobalVariables()
呼び出しを自動的に作成する関数を提供します。
http://stackoverflow.com/questions/15409806/r-package-compilation-with-dependency-on-data-table
http://stackoverflow.com/questions/8096313/no-visible-binding-for-global-variable-note-in-r-cmd-check
IIUCでは、data.tableとdplyrの両方が使用する「非標準評価」を認識させるために「RCMDチェック」に変更する必要があります。 これは難しい問題です(おそらく、コードを実行しないと不可能です)。 したがって、関数?globalVariables
は2.15.1でRに追加されましたが、あまり知られていないのは、おそらく?dontCheck
がR 3.1.0で追加され、NSEを使用してクエリをラップするために使用できることです。 これらは、NSEを使用しているものだけでなく、コードの他の領域で真のエラーをサイレンシングする(またはおそらく新しいエラーを作成する)リスクがある<-NULL
よりも優れています。
必ずしも無視することはできません。 一部のパッケージは拒否されており、作成者はCRANからglobalVariables
を使用してNOTESを抑制するように指示されています。 例えば:
やあ、
これは古い問題ですが、解決されていません。 私は今、新しい解決策があるかどうか疑問に思いましたか?
それ以外の場合、従うべき良い習慣は何ですか? まだglobalVariables
?
私はのアイデアが好きです
これらの記号を検出して
globalVariables()
を作成する関数
ありがとう。
@cdervを使用する前に、変数にNULLを割り当てることができます(オーバーライドと混同しないでください)。 したがって、グローバル変数を定義するのではなく、それらを使用している関数でローカル変数を定義するだけです。 特別な方法で対処する必要はないと思います。 この問題はアクションポイントが定義されていない状態で2年間待機しており、実際にはdata.tableの問題ではないため、今のところ終了します。
最も参考になるコメント
@cdervを使用する前に、変数にNULLを割り当てることができます(オーバーライドと混同しないでください)。 したがって、グローバル変数を定義するのではなく、それらを使用している関数でローカル変数を定義するだけです。 特別な方法で対処する必要はないと思います。 この問題はアクションポイントが定義されていない状態で2年間待機しており、実際にはdata.tableの問題ではないため、今のところ終了します。