10

Jofdata.tableを使用した関数でRパッケージを作成しようとしています。を実行するR CMD checkと、注:「J」のグローバル関数定義が表示されませんが、DESCRIPTIONファイルに依存関係としてdata.tableを追加しました。

パッケージ:rfPred
タイプ:パッケージ
タイトル:rfPred機能予測スコアをミスセンス変異リストに割り当てます
バージョン:1.0
日付:2013-03-14
作成者:me
メンテナ:me
依存:data.table
[..]

作成したいパッケージでdata.tableパッケージの別の関数を使用しようとしましたが、Jの場合と同じ問題は発生していません。

解決策はありますか?

4

1 に答える 1

10

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ユーザーは混乱を招く可能性があるため、エクスポートしないことにしました。)JNULL
  • または?utils::globalVariables、コメントで提案されているBenBolkerとして使用します。

この特定のNOTEのさらなる背景は、この関連する質問にあります。

グローバル変数の表示可能なバインディングがないRCMDチェックの注

于 2013-03-14T13:44:22.937 に答える