R の静的コード解析

ディフェンシブRプログラミング

Dr. Colin Gillespie

Jumping Rivers

lintr パッケージ

  • lintr は R 用の静的コード解析パッケージです
    • 次をチェックします
      • 指定のスタイル
      • 構文エラー
      • あり得るセマンティック問題

スペルチェックのように動作します

ディフェンシブRプログラミング

lintr の使用

lintr の使い方

  • コードをファイルに保存します
  • lint() 関数に渡します
ディフェンシブRプログラミング

lintr の実行例

次のコードがあるとします

my_bad<-function(x, y) {
  x+y
}

これを code.R に保存します。

  • lintr::lint("code.R") を実行すると 2 件の問題が指摘されます
ディフェンシブRプログラミング

問題 1

my_bad<-function(x,y) {
  x+y
}
r[[1]]
tmp.R:1:7: style: すべての中置演算子の前後に空白を入れてください。
my_bad<-function(x,y) {
     ~^~~
my_bad <- function()
ディフェンシブRプログラミング

問題 2

my_bad<-function(x,y) {
  x+y
}
r[[3]]
tmp.R:2:4: style: すべての中置演算子の前後に空白を入れてください。
  x+y
  ~^~
 x + y
ディフェンシブRプログラミング

Lintr を実際に見てみましょう

ディフェンシブRプログラミング

Preparing Video For Download...