2

ggplot2構文が適切な場合に、R CMDチェック「グローバル変数の目に見えるバインディングがありません」というメモを処理するにはどうすればよいですか? .

そのシナリオでは、aes の代わりに aes_string を使用することで、すべてがスムーズに機能します。ただし、これは plyr afaik では不可能です。

たとえば、ddply を介してデータ フレームの列名を参照すると、問題が発生します。

ddply(mydf, .(VarA, VarB, VarC, VarD), summarize, sum = sum(VarE))
#
# MyPackage: no visible binding for
#   global variable ‘VarA’

このコードは完全に有効で正気であり、NOTE の使用法は理解していますが、出力ウィンドウ内の他のメッセージが散らかっているため、パッケージ開発が面倒であり、実際には開発者に NOTE を無視するよう強制しています。

これらのメモを取り除く正しい方法は何ですか? または、R CMD チェックが NOTE を指定せずに受け入れる方法でコードを記述する正しい方法は何ですか?

ベスト、マイケル

4

2 に答える 2

5

いくつかの回避策があります。NULL最も簡単なのは、目に見えるバインディングなしですべての変数に割り当てることです。

VarA <- VarB <- VarC <- VarD <- VarE <- NULL

より洗練されたソリューションは、as.quotedandを使用することsubstituteです。@Drによる更新。Mike: への呼び出しはas.quotedでカプセル化する必要がありますc()

ddply(mydf, 
      as.quoted(c('VarA', 'VarB', 'VarC', 'VarD')), 
      summarize, 
      sum = sum(substitute(VarE)))
于 2015-03-04T10:37:58.813 に答える