J()
独立した関数がから削除されたためdata.table
。それはまだ機能している内部DT[...]
でのみ使用されます。ただし、自分のパッケージに依存して正しくdata.table
使用しているパッケージの場合J()
、注を回避するために追加の手順が必要です(以下を参照)。
最初に背景と理由J()
が削除されました。ニュースからの抜粋:
v1.8.2(2012年7月):
- J()エイリアスはDT [...]の外部では非推奨になりましたが、DT [J(...)]のように、DT[...]の内部でも機能します。J()は、パッケージXLConnect(#1747)およびrJava(#2045)の関数J()と競合しています。data.tableの変更は簡単で、効率にもいくつかの利点があります。data.tableの次のバージョンは、DT [...]の外部で使用されると、J()から警告を発行します。後のバージョンはそれを削除します。そうして初めて、rJavaおよびXLConnectとの競合が解決されます。DT [...]の外部では、J()の代わりにdata.table()を直接使用してください。
v1.8.4(2012年11月):
- J()は、DT [...]の外部で使用することは非推奨であるという警告を(DT [...]の外部で使用する場合)発行するようになりました。v1.8.2の以下の項目を参照してください。DT [...]の外部で、J()の代わりにdata.table()を直接使用します。または、自分でエイリアスを定義します。J()は、文書化されているようにDT[...]内で引き続き機能します。
v1.8.8(現在、CRAN、2013年3月):
- J()エイリアスはDT [...]の外部で削除されましたが、DT[...]の内部では引き続き機能します。つまり、DT [J(...)]で問題ありません。v1.8.2で警告され(このファイルの以下を参照)、v1.8.4ではwarning()で非推奨になりました。これにより、パッケージXLConnect(#1747)およびrJava(#2045)の関数J()との競合が解決されます。DT [...]の外部では、J()の代わりにdata.table()を直接使用してください。
余談ですが、r-develには最近関連するスレッドもありました:http:
//r.789695.n4.nabble.com/conflict-between-rJava-and-data-table-tp4659935p4659984.html
R CMD check
さて、あなたのパッケージで作成されたノートのために
パッケージはJ()
内部DT[...]
で使用されており、正常に機能しています。唯一の問題は、RCMDチェックからの注記です。
no visible global function definition for 'J'
既知のオプションはすべて次のとおりです。
- 注は無視してください。(私もこれが好きではありませんが、オプションとしてだけです)。警告とエラーのみを処理する必要があります。
J
に置き換えlist
ます。それは同等です。
J=NULL
パッケージのどこかに定義します。data.table
(エクスポートを検討したJ=NULL
ので、必要はありませんが、プロンプトで入力するdata.table
ユーザーは混乱を招く可能性があるため、エクスポートしないことにしました。)J
NULL
- または
?utils::globalVariables
、コメントで提案されているBenBolkerとして使用します。
この特定のNOTEのさらなる背景は、この関連する質問にあります。
グローバル変数の表示可能なバインディングがないRCMDチェックの注