Статичний аналіз коду для R

Оборонне програмування R

Dr. Colin Gillespie

Jumping Rivers

Пакет lintr

  • lintr — це пакет R для статичного аналізу коду 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...