Написание программы R lint - PullRequest
15 голосов
/ 01 марта 2011

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

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

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

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

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

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

Ответы [ 4 ]

12 голосов
/ 01 марта 2011

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

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

10 голосов
/ 06 марта 2015

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

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

8 голосов
/ 23 февраля 2013

Недавно кто-то выложил пакет lint для R: http://cran.r -project.org / web / packages / lint / index.html

Похоже, он находится на ранней стадии разработки.Это на Github здесь: https://github.com/halpo/lint.git

5 голосов
/ 02 марта 2011

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

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

...