Статический анализ кода для 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") выявляет две проблемы
Защитное программирование на R

Проблема 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()
Защитное программирование на R

Проблема 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
Защитное программирование на R

Посмотрим на lintr в действии

Защитное программирование на R

Preparing Video For Download...