問題タブ [lintr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
114 参照

r - .Renviron が globalVariables によって上書きされる

パッケージに関数があるとしましょう

.Renvironには設定があります_R_CHECK_CODETOOLS_PROFILE_="suppressUndefined=TRUE"。これにより、codetoolsパッケージが実行中に実行されたときに、次のR CMD checkような警告が返されなくなります。

ただし、次のようないくつかのグローバル変数を定義した場合

私のパッケージ ドキュメント内では、すべての変数がバインドされていないR CMD checkと識別されます。関数がファイル内のオプションを上書きしているかのようです。globalVariables()"suppressUndefined=TRUE".Renviron

私の質問は、なぜこれが起こっているのですか? 詳細については、読み進めてください。

一見 2 つの「単純な」ソリューションがあります。

  1. package.Rファイル内で変数を定義せず、codetoolsオプションでそれらすべてを処理できるようにします。
  2. 関数内ですべてのグローバル変数を定義し、オプションglobalVariables()を使用しないでください。codetools

残念ながら、関数の一部のRHS のみをチェックするため、lintrパッケージを使用する場合、最初のオプションは適切ではありません。したがって、変数と関数を含めることが、この問題に遭遇した理由です。のオプションももちろん使えますが、物足りない感じです。2 番目のオプションでは、1000 個を超える変数のベクトルが必要になり、良い解決策とは思えません。lintrmpg_div_hp := mpg / hp"mpg""hp"globalVariablesobject_usage_linter=NULLlintr

0 投票する
0 に答える
79 参照

r - object_usage_linter は、バインディング メッセージが表示されない間違った行をマークします

次のコード スニペットを検討してください (最後のコメントは行番号を示しており、問題の一部ではありません)。

lintこのファイルを経由 するlintr:::addin_lint()と、次の奇妙なエラーが表示されます。

ただし、行を削除してエラーが発生しなくなった場合:#5#6

このファイルを lint してもエラーは発生しません。

質問

  1. これは意図的な動作ですか、それとも のバグlintrですか?
  2. line numberではなくlintrline number のスニペットについて不平を言うのに、なぜ行番号が間違っているのですか?#13#6
0 投票する
0 に答える
580 参照

r - .lintr 構成ファイルはどこにありますか?

R パッケージ lintrは、ファイルの"lint" (エラーまたはスタイル違反) をチェックします。ファイルで設定でき.lintrます。そのファイルはどこにありますか? git リポジトリの一番上に置きたいと思っていましたが、RStudio で実行するとうまくいかないようです。

注: RStudio プロジェクトは、git リポジトリの最上位レベルの下にあります。おそらくそれは、RStudio の lintr が親ディレクトリを検索しないということでしょうか? じゃあどうするのが正解?プロジェクトディレクトリにソフトリンクしますか?

編集:再現するには:

  • というディレクトリからRStudioでプロジェクトを作成しますproj1
  • foo.Rlint 違反のあるファイルを作成します。a=1
  • RStudio コンソールで実行lintr::lint('foo.R')して、lint エラーを確認します
  • lintr をproj1オフにする .lintr を作成します。exclusions: ('foo.R')
  • lintr::lint('foo.R')RStudio コンソールで実行して、エラーが消えることを確認します
  • .lintr を 1 つ上のディレクトリに移動します (プロジェクトの外ですが、親ディレクトリ内にあります)。
  • lintr::lint('foo.R')RStudio コンソールで実行して、返された lint の問題を確認します

EDIT 2 :必要なすべてのディレクトリで最上位の .lintr をソフトリンクすることになりました。

参考までに、私の lintr のバージョンは1.0.3R のバージョンは 3.5.2 です。