Statische code-analyse voor R

Defensief programmeren in R

Dr. Colin Gillespie

Jumping Rivers

De lintr-package

  • lintr is een R-pakket voor statische code-analyse voor R
    • Het controleert naleving van een
      • opgegeven stijl
      • syntaxfouten
      • mogelijke semantische issues

Vergelijkbaar met een spellingscontrole

Defensief programmeren in R

lintr gebruiken

Zo gebruik je lintr

  • Sla de code op in een bestand
  • Geef de code door aan de functie lint()
Defensief programmeren in R

lintr in actie

Stel, ik heb de volgende code

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

opgeslagen in het bestand code.R.

  • lintr::lint("code.R") geeft twee issues aan
Defensief programmeren in R

Issue 1

my_bad<-function(x,y) {
  x+y
}
r[[1]]
tmp.R:1:7: style: Zet spaties rond alle infix-operatoren.
my_bad<-function(x,y) {
     ~^~~
my_bad <- function()
Defensief programmeren in R

Issue 2

my_bad<-function(x,y) {
  x+y
}
r[[3]]
tmp.R:2:4: style: Zet spaties rond alle infix-operatoren.
  x+y
  ~^~
 x + y
Defensief programmeren in R

Laten we Lintr in actie zien

Defensief programmeren in R

Preparing Video For Download...