Программы для разработки скриптов на R

Я уже писал о своих предпочтениях среди IDE для разработки на языке Perl. Теперь попробую рассказать об аналогичных программах, предназначенных для разработки скриптов на языке R. Рассматривается только Windows-платформа.



Система R представлет собой достаточно сложный язык программирования со множеством функций и их параметров. Для управления всем этим богатством в R используется традиционный подход с помощбю командной строки, который имеет как неоспоримые преимущества, так и недостатки.

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

Таким образом, проблема использования удобной IDE встает практически перед каждым серьезныи пользователем R. Разумеется, сообщество достаточно осознает эту необходимость и существует список IDE (или GUI) для R - http://www.sciviews.org/_rgui/

Ниже я опишу свой опыт по использованию IDE для R

Tinn-R


Одним из наиболее известных IDE для R является Tinn-R . Программа бесплатна и открыта (разработка ведется на Delphi 7, присоединяйтесь).

Tinn-R

Tinn-R

Я использую версию относительно старую версию 1.19, с версиями 2.х возникли проблемы с запуском кусков кода.

+ Из приятностей можно отметить подсветку кода, наличие небольшого встроенного справочника по функциям R (на рисунке он справа), возможность быстрого комментирования участков кода, поиск и подсветка парных фигурных скобок.

- Рекомендую также перенастроить горячие клавиши, которые Tinn-R использует для управления R. Например, случайное касание клавиш F11 или F12 приводит к выдаче "веселой" команды rm(list=ls(all=TRUE)). Обычно это происходит когда Вы уже второй час пытаетесь отладить сложную функцию, позади часы расчетов и в памяти десятки переменных... В тоже время выбирать горячую клавишу для запуска участка кода - основной рабочий инструмент - тоже следует с отсторожностью. Проблема в том, что Tinn-R перехватывает нажатия на клавиши независимо от того, какое окно имеет фокус ввода (что, безусловно, является багом) . Поэтому не стоит назначать такие часто используемые клавиши как F5-F8, поскольку вместо операций с файлами в Total Commander или обновления страницы в браузере будут выполнены команды R, что может быть крайне нежелательно.

- В Tinn-R мне больше всего не хватает хорошего автодополнения. Также весьма раздражающим моментом является отказ программы выполнять участок кода если включена русская раскладка клавиатуры.

Revolution R Enterprise


Одним из наиболее интересных продуктов для разработки на R является Revolution. Программа распространяется за деньги, однако для академических институтов фирма бесплатно предоставляет версию для установки на один компьютер.

 Revolution R Enterprise 4 IDE
Revolution 4 - отладка функции в самом разгаре...


За время использования Revolution обнаружились следующие достоинства и недостатки:

+ Cамый большой плюс Revolution: визуальная отладка для R! C подсветкой значений переменных - наконец-то! Конечно, не обходится без ложки дегтя:
- окно Watches в меню присутствует, однако всегда пишется not yet supported (в третьей версии было то же самое)
- нельзя отлаживать функцию, описанную в другом файле.
- матрица показывается как одномерный массив

Но все равно это большой шаг вперед по сравнению с методами отладки, используемые в самом R.

+ Проверка валидности кода на лету: синтаксически ошибочные конструкции выделяются волнистой линией. Похожим образом это сделано в Komodo IDE.

+ Из других приятных вещей можно упомянуть автодополнение, всплывающую справку по параметрам функций (!!), поблочное сворачивание кода .

+ Отдельным пунктом в Revolution упоминается расширенная поддержка параллельных вычислений. Я, к сожалению, пока не имею опыта в этой области (все распараллеливания делаю вручную, запуская несколько копий одного скрипта), но вообще это должно быть огромным стимулом для изучения Revolution.

- Несмотря на большое количество меню и опций, большинство из них относятся к вспомогательным и техническим функциям, определяющим работу самой IDE. Практически нет команд, специфичных для R, которые бы существенно расширяли функционал по сравнению со стандартным Rgui.

- Есть масса мелких, но раздражающих моментов. Например, в окне R-терминала не работает автодополнение по Tab. Очень тяжело отвыкать. Нет такой удобной функции как Run to cursor, приходится ставить breakpoint.

- Разработка Revolution запаздывает относительно разработки самого R. Когда я впервые начал знакомиться с Revolution, мне предоставили версию 3.1.1 (от 5 мая 2010). В той версии использовался R версии 2.9, хотя уже давно был доступен R 2.11. Все бы ничего, но дело в том, что в R 2.10 изменили формат пакетов, в результате чего библиотеки скомпилированные для версии R 2.11 не работают в 2.9. Это вызывало массу проблем с обновлением пакетов (что хочется делать регулярно, например если используются пакеты с данными из BioConductor). Впрочем, последняя версия Revolution (4.0) использует R 2.11.1, и теперь подобных проблем больше нет. Однако, это не исключает возможности их возникновения в будущем.


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

R-studio

Достаточно популярная открытая IDE, сайт программы - www.rstudio.org


RStudio


В текущей версии (0.95) имеется:
- подсветка синтаксиса и подсказки в окне терминала и редакторе кода
- навигация по коду
- возможность интерактивного управления графикой с помощью пакета manipulate (!)
- работа с проектами и интеграция с системами управления версий

Из серьезных недостатков отмечу:
- невозможность использования функции fix(). Это очень плохо, т.к. пользователь остается без средств просмотра и редактирования больших матриц.
- невозможно тонко настроить рабочую область - жесткое разбиение на 4 части. В итоге, редактор скрипта, терминал и справка должны делить общее пространство. Соответсвенно каждое окно имеет небольшой размер, что очень некомфортно при работе за 14" монитором.
- невозможно изменить размер шрифта в справке


В результате, имеющиеся недостатки для меня слишком серьезны, чтобы использовать RStudio на постоянной основе.


Будет здорово, если в комментариях вы поделитесь своими соображениями по поводу IDE для разработки на R.

Добавить комментарий


Защитный код
Обновить