Написание программы R lint

Когда я программирую на python, я нахожу использование pylint очень полезным. Однако, когда я программирую в R, нет ничего сопоставимого.

Как маленький побочный проект, я подумал, что было бы забавно попробовать написать небольшую программу. Ничего необычного, что-то вроде:

  • Удостовериться, что имена функций - это верблюд.
  • Средняя длина функции
  • Обнаружение неиспользуемых переменных
  • Spacing. Например, function(x=1, y=2) вместо function(x=1,y=2)

Тем не менее, я не уверен, как начать (я начал просматривать код пилинга).

Как мне начать? Существуют ли стандартные методы программирования для этого типа проекта? Любые хорошие ресурсы, которые я должен рассмотреть?

Я хотел бы написать весь проект в R.

Ответ 1

Взгляните на пакет codetools, который поставляется с R. Некоторые детали находятся на странице CRAN для пакета. Код в пакете запускается, когда вы делаете R CMD check, например, так что можете поймать неиспользуемые переменные и т.д. Это может привести к тому, что вы начнете с этого аспекта rlint.

Чтобы ответить на некоторые другие аспекты... Я бы начал писать простые функции, которые выполняют одну задачу, например, конвертировать имена функций в случай верблюда. Когда вы создаете множество небольших функций, вы можете объединить их в рабочую функцию обертки lint, позволяя пользователям/разработчикам гибко вызывать конкретные функции, если они не хотят полного поведения линта.

Ответ 3

lintr - это R-пакет, который выполняет клонирование кода как для стиля, так и для возможных семантических ошибок. Он использует кодеки под капотом, а также дополнительные линии поверх него.

Он также интегрируется с Emacs, Vim, Sublime Text и RStudio.

Ответ 4

Процедура проверки "R CMD" может помочь вам. Одна вещь, которую он делает, - найти переменные, которые используются без кажущегося инициализации. Это часто опечатка. Код для этой процедуры проверки может помочь вам.

Я не думаю, что это небольшая работа!