Statisk kodanalys för R

Defensiv R-programmering

Dr. Colin Gillespie

Jumping Rivers

Paketet lintr

  • lintr är ett R-paket för statisk kodanalys
    • Det kontrollerar efterlevnad av
      • given stilguide
      • syntaxfel
      • möjliga semantiska problem

Liknande hur stavningskontroll fungerar

Defensiv R-programmering

Använda lintr

Så här använder du lintr

  • Spara koden i en fil
  • Skicka koden till funktionen lint()
Defensiv R-programmering

lintr i praktiken

Anta att du har följande kod

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

sparad i filen code.R.

  • Att köra lintr::lint("code.R") markerar två problem
Defensiv R-programmering

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()
Defensiv R-programmering

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
Defensiv R-programmering

Nu kör vi en övning!

Defensiv R-programmering

Preparing Video For Download...