Statyczna analiza kodu dla R

Defensywne programowanie w R

Dr. Colin Gillespie

Jumping Rivers

Pakiet lintr

  • lintr to pakiet R do statycznej analizy kodu
    • Sprawdza zgodność z
      • określonym stylem
      • błędami składni
      • potencjalnymi problemami semantycznymi

Działa podobnie jak sprawdzanie pisowni

Defensywne programowanie w R

Używanie lintr

Aby użyć lintr

  • Zapisujemy kod w pliku
  • Przekazujemy kod do funkcji lint()
Defensywne programowanie w R

lintr w akcji

Załóżmy, że mamy następujący kod

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

zapisany w pliku code.R.

  • Uruchomienie lintr::lint("code.R") wykrywa dwa problemy
Defensywne programowanie w R

Problem 1

my_bad<-function(x,y) {
  x+y
}
r[[1]]
tmp.R:1:7: style: Put spaces around all infix operators.
my_bad<-function(x,y) {
     ~^~~
my_bad <- function()
Defensywne programowanie w R

Problem 2

my_bad<-function(x,y) {
  x+y
}
r[[3]]
tmp.R:2:4: style: Put spaces around all infix operators.
  x+y
  ~^~
 x + y
Defensywne programowanie w R

Lintr w akcji

Defensywne programowanie w R

Preparing Video For Download...