Главная страница

А. Б. Шипунов, Е. М. Балдин, П. А. Волкова, А. И. Коробейников, С. А. Назарова


Скачать 3.04 Mb.
НазваниеА. Б. Шипунов, Е. М. Балдин, П. А. Волкова, А. И. Коробейников, С. А. Назарова
Анкорrbook
Дата29.09.2022
Размер3.04 Mb.
Формат файлаpdf
Имя файлаrbook.pdf
ТипДокументы
#705644
страница15 из 19
1   ...   11   12   13   14   15   16   17   18   19

Здесь мы проверили — правда ли, что доля самцов достоверно от- личается от 50%?
Достоверность линейной связи между параметрическими данными
(корреляционный тест Пирсона):
> cor.test(data$VES, data$ROST, method="pearson")
... и между непараметрическими (корреляционный тест Спирмена):
> cor.test(data$VES, data$ROST, method="spearman")
Дисперсионный анализ при помощи линейной модели:
> anova(lm(data$ROST

data$POL))
Заканчиваем...
Сохраняем историю команд через меню или при помощи команды
> savehistory("zhuki.r")
Все введенные вами команды сохранятся в файл с расширением *.r,
который можно открыть в любом текстовом редакторе и исправлять,
дополнять или копировать в строку ввода программы в следующий раз.
Этот файл можно выполнить целиком (запустить), для этого использу- ется команда source("zhuki.r"). Более того, можно запустить данный файл, не заходя в R,— для этого в командной строке надо набрать
$ Rscript zhuki.r
Внимание! Всегда сохраняйте то, что вы делали в R!
Выходим из программы через меню или с помощью команды q("no").

Приложение Б
Графический интерфейс (GUI) для R
Прежде чем начать рассказ о GUI, хотелось бы сказать пару слов в пользу консольного интерфейса. Анализ данных — это творческий про- цесс, и ничто не продвигает его лучше, чем неспешный ввод с клавиату- ры. Естественно, этому занятию должен предшествовать интервал вре- мени, целиком и полностью посвященный чтению документации, книг и статей по тематике проблемы. Меню и кнопки отвлекают, создавая иллюзию простоты творческого процесса, требуя нажать их немедлен- но и посмотреть, что получится. Как правило, не получается ничего, то есть все равно приходится брать в руки книгу и думать.
Консольный интерфейс в R идеален. Он предоставляет пользовате- лю историю команд, дополнение по Tab (то есть выдает при нажатии на эту клавишу список возможных продолжений команд, объектов и даже имен файлов), сохраняет информацию и объекты между сессия- ми (если пользователь этого захочет, естественно). Нужно поработать на удаленном компьютере? С консолью нет никаких проблем. А если воспользоваться программой screen, то можно не бояться разорванных сессий и случайно закрытых терминалов.
К счастью, практически все графические оболочки для R учиты- вают это и, как правило, «расширяют» базовые возможности пакета такими дополнениями, как интегрированный редактор кода с подсвет- кой, отладчик, редактор массивов данных и т. п.
Б.1. R Сommander
R
Сommander, или Rcmdr (рис. 64),— кросс-платформенный графи- ческий интерфейс к R, написанный на Tcl/Tk. Его домашнюю стра- ницу можно найти по адресу http://socserv.mcmaster.ca/jfox/Misc/
Rcmdr/
Автор R Commander Джон Фокс (John Fox) признается, что в случае программ для статистического анализа он не является фанатом интер- фейса, состоящего из меню и диалогов. С его точки зрения, R Comman- der полезен в основном для образовательных целей при введении в R,
а также в отдельных, очень редких случаях — для быстрого анализа.

210
Графический интерфейс (GUI) для R
Рис. 64. Окно R Сommander
Одной из основополагающих целей, преследуемых при создании интер- фейса R Commander, был мягкий перевод пользователя в консоль, где можно автоматизировать свои действия более глобально.
Пакет распространяется под лицензией GPLv2, и поэтому доступен во всех стандартных дистрибутивах Linux. Например, для установки в
Debian/Ubuntu достаточно выполнить команду:
$ sudo aptitude install r-cran-rcmdr
Пакет присутствует также и на CRAN, поэтому его установку можно произвести и собственными силами R:
> install.packages("Rcmdr", dependencies=TRUE)
Обратите внимание на значение опции dependencies: R Commander зависит от довольно большого числа пакетов. После установки в сессии
R
следует выполнить команду
> library(Rcmdr)
При запуске R Commander открывается снабженное довольно «раз- весистым» меню окно, разделенное на Окно скриптов (Script Win- dow), Окно вывода (Output Window), а также информационное ок- но Сообщения (Messages). Многие действия в R Commander можно выполнять через меню, которое достаточно легко настраивается, на- пример с помощью редактирования текстового файла Rcmdr-menus.txt.
В Окне скриптов можно вводить команды, то есть консоль никуда не

RStudio
211
делась. Графики появляются в отдельных окнах, как и в случае «чис- того» R.
R
Commander имеет русский перевод, который активизируется ав- томатически, если система русифицирована.
Основная проблема русифицированного R Commander (если вы работаете в Linux) — это кириллические шрифты, которые выбраны по умолчанию.
Поэтому если вы предпочитаете русский интерфейс, то перед загрузкой R
Commander ему с помощью команды options следует передать примерно сле- дующее:
> options(Rcmdr=list(default.font=
"-rfx-fixed-medium-r-normal-*-20*", suppress.X11.warnings=TRUE))
Растровый шрифт семейства rfx от Дмитрия Болховитянова (20 в конце строки — это размер по умолчанию), установленный в качестве default.font,
находится обычно в составе пакета xfonts-bolkhov вашего дистрибутива Lin- ux. Второй параметр, suppress.X11.warnings, подавляет надоедливые сооб- щения при создании новых графических окон.
Выйти из R Commander можно через меню Файл -> Выйти, при этом можно одновременно закрыть и сессию R. Если же сессия R осталась открытой, то повторный запуск R Commander выполняется с помощью команды
> Commander()
Для вводного ознакомления с возможностями R Commander следует прочитать текст Getting-Started-with-the-Rcmdr.pdf, получить до- ступ к которому можно через меню Помощь -> Введение в R Commander.
Если по какой-то причине было принято решение анализировать данные исключительно с помощью R Commander, то можно сделать так, чтобы при запуске R эта графическая оболочка загружалась авто- матически. Для этого в файл пользовательских настроек /.Rprofile достаточно добавить следующие строки:
old <- getOption("defaultPackages")
options(defaultPackages = c(old, "Rcmdr"))
Глобальная переменная defaultPackages содержит информацию о модулях, автоматически загружаемых при старте R.
Б.2. RStudio
RStudio (http://www.rstudio.com/ide/) — это относительно новая оболочка для R, доступная под свободной лицензией. Среда работает

212
Графический интерфейс (GUI) для R
под основными операционными системами (Windows, Linux, Mac OS
X), и, кроме этого, предоставляет доступ к R через Web-интерфейс.
После запуска появляется окно (рис. 65), удобно разделенное на несколько частей: исходный код редактируемого файла, консоль, содер- жимое рабочего пространства, история команд, и часть, предоставля- ющая доступ к списку пакетов, рисунков и файлов в текущем рабочем каталоге и справке (содержимое отдельных частей окна можно поме- нять через меню Tools -> Options -> Pane Layout).
Рис. 65. Окно RStudio
В качестве отдельных преимуществ оболочки следует отметить ре- дактор кода с автоматической подсветкой, автодополнением, простей- шими преобразования кода (например, выделение нескольких строк в отдельную функцию), поддержку редактирования не только R кода, но и документов Sweave.
Авторы среды пошли немного дальше простого предоставления функ- ций R из-под оболочки: в комплекте с RStudio поставляется пакет manipu- late
, позволяющий интерактивно менять параметры графиков внутри среды (рис. 66). Так, например, следующий код
> library(manipulate)
> manipulate(plot(cars, xlim = c(0, x.max), type = type,
+ ann = label),
+ x.max = slider(10, 25, step=5, initial = 25),
+ type = picker("Points" = "p", "Line" = "l", "Step" = "s"),
+ label = checkbox(TRUE, "Draw Labels"))

RKWard
213
выведет окно настроек, позволяющее менять значение переменных x.max
, type и label и при этом сразу же видеть результат такого изме- нения на графике.
Б.3. RKWard
RKWard (http://rkward.sourceforge.net) — это довольно удоб- ный, основанный на KDE интерфейс к R (рис. 67). Разработчики RK-
Ward старались совместить мощь R с простотой использования, подоб- ной предоставляемой коммерческими статистическими пакетами (таки- ми, как SPSS или STATISTICA).
Для начинающих пользователей RKWard предоставляет широкие возможности по выбору многих стандартных процедур статистическо- го анализа по принципу «выдели и щелкни»: достаточно активировать соответствующий пункт меню.
Для продвинутого пользователя RKWard предлагает удобный ре- дактор кода с подсветкой, автоматической расстановкой отступов, ав- тодополнением — теми вещами, без которых в настоящее время не об- ходится ни одна среда программирования. Привычная консоль R также наличествует, она доступна в любое время на вкладке R Console.
Авторы RKWard взяли курс на как можно более полную интегра- цию функций R в графическую среду: присутствует браузер текуще- го окружения
(environment) и редактор данных. Есть менеджер пакетов
, умеющий не только устанавливать их, но и следить за обнов- лениями; обеспечивается прозрачная интеграция со справочной систе- мой. Кроме того, RKWard умеет перехватывать создание графических окон и добавлять к ним очень удобные функции типа сохранения со- держимого в файл одного из стандартных форматов, поддерживаемых
R
(PDF, EPS, JPEG, PNG).
Интерфейс RKWard чрезвычайно гибок: пользователь может рас- ширять его за счет написания собственных модулей (кстати, все встро- енные средства анализа, доступные сразу же после запуска из меню,—
это такие же модули, но только созданные авторами RKWard).
Б.4. Revolution-R
Ключевые особенности Revolution-R (его домашняя страница — http:
//www.revolutionanalytics.com
) — это, разумеется, графический ин- терфейс (рис. 68), полная интеграция с Microsoft Visual Studio, наличие полноценного пошагового отладчика и оптимизированных подпрограмм математических функций BLAS и LAPACK, позволяющих автоматически использовать преимущества многопроцессорных систем.

214
Графический интерфейс (GUI) для R
Рис. 66. Вот так в RStudio работает пакет manipulate

Revolution-R
215
Рис. 67. Окно RKWard
Как читатель уже понял, основная платформа, на которую «наце- ливается» Revolution-R, — это Windows. Версия под Linux тоже сущест- вует, но пошаговый отладчик в комплекте отсутствует, что сразу же снижает ценность пакета.
Revolution-R существует в двух редакциях: бесплатной Community
Edition и очень платной Enterprise Edition (цена на последнюю начи- нается с $1000 за рабочее место). Главное отличие бесплатной версии заключается в отсутствии какой-либо интеграции с Visual Studio (а,
следовательно, и в отсутствии отладчика). Впрочем, оптимизирован- ные математические подпрограммы доступны всюду, поэтому получать преимущества от многопроцессорных вычислений можно совершенно бесплатно.
Стоит отметить, что существует программа по предоставлению бес- платных лицензий (но без технической поддержки) на Enterprise ре- дакцию при условии использования для научных исследований. Для получения такой лицензии на веб-сайте программы следует отправить запрос с использованием «академического» (например, университетско- го) адреса электронной почты.

216
Графический интерфейс (GUI) для R
Рис. 68. Окно Revolution-R
Б.5. JGR
Предпочитаете, чтобы графический интерфейс отрисовывался сред- ствами Java (рис. 69)? Тогда JGR (Java GUI для R) — это то, что вы искали. JGR (произносится как «ягуар») был впервые представлен пуб- лике в 2004 году, но развивается и поддерживается до сих пор. Пакет
JGR распространяется под открытой лицензией GPLv2, и его домашняя страница доступна по адресу http://jgr.markushelbig.org/JGR.html.
JGR создавался для Mac OS X «со всеми вытекающими», но под
Windows и Linux он тоже работает. Для использования JGR под Linux необходимо инсталлировать Sun Java Development Kit (JDK):
$ apt-get install sun-java6-jdk
$ sudo update-java-alternatives -s java-6-sun
$ sudo R CMD javareconf
После установки и настройки Java-окружения следует запустить сес- сию R и выполнить следующие действия:
> install.packages(’JGR’)
> library(JGR)
> JGR()
Starting JGR run script. ...
Готово — JGR запущен.

Rattle
217
Рис. 69. Окно JGR
В JGR есть встроенный текстовый редактор, в нем есть подсветка синтаксиса и Tab-завершение команд. Есть и гипертекстовая помощь,
простенькая электронная таблица, возможность управлять объектами,
в том числе и с помощью мыши, имеется и графический интерфейс для установки и загрузки R-пакетов. С учетом того, что этот GUI может работать везде, где есть Java, на него стоит обратить внимание.
Б.6. Rattle
Rattle (http://rattle.togaware.com) — сокращение, обозначающее
«R Analytical Tool To Learn Easily» (легкая в освоении среда анализа
R
). Программа активно развивается. Rattle — это среда для «разгляды- вания» данных человеком (рис. 70), она предназначена для интеллек- туального анализа данных (data mining), иными словами, для выявле- ния скрытых закономерностей или взаимосвязей между переменными в больших массивах необработанных данных.
Для установки Rattle под Linux необходимо наличие пакетов ggobi
(программа визуализации данных) и libglade2-dev:
$ apt-get install ggobi libglade2-dev
После этого в консоли R следует выполнить команду
> install.packages("rattle", dependencies=TRUE)

218
Графический интерфейс (GUI) для R
Рис. 70. Стартовое окно Rattle и откинуться на спинку кресла. Из-за большого количества зависи- мостей установка занимает много времени.
Запуск GUI производится как обычно:
> library(rattle)
> rattle()
Б.7. rpanel
Пакет rpanel — это простая и одновременно высокоуровневая над- стройка над R, написанная в том числе на языке Tcl/Tk. Это не GUI
в строгом смысле слова, а скорее средство (toolkit) для того, чтобы самостоятельно создать простые GUI, которые потом можно исполь- зовать для множества целей. Самое, наверное, важное преимущество rpanel
— вы можете сделать графическое приложение под конкретную задачу всего за несколько минут!
Если пакет rpanel отсутствует в системе, то надо его скачать и уста- новить с помощью команды install.packages("rpanel"). После этого можно загрузить саму библиотеку:
> library(rpanel)
rpanel
219
Логика использования пакета довольно проста:
1. С помощью функции rp.control нужно создать объект panel и объявить в нем нужные нам переменные.
2. Далее необходимо «населить» объект rpanel различными элемен- тами графического интерфейса (ползунками, кнопками, картин- ками и т. д.) и связанными с ними переменными.
3. В самом конце требуется определить функцию, которая будет вы- полняться в ответ на взаимодействие пользователя с графическим интерфейсом.
Разберем простейший пример, в котором функция выводит на экран одно из двух: или гистограмму полученных данных, или «ящик-с-усами»
(боксплот) в зависимости от выбранного значения в элементе rp.radio- group
(рис. 71).
Объявим объект panel и данные, которые будем отображать:
> panel <- rp.control(x=rnorm(50))
Теперь поместим в panel переключатель rp.radiogroup и свяжем его с переменной plot.type и с функцией hist.or.boxp:
> rp.radiogroup(panel,
# сам объект
+
plot.type,
# переменная
+
c("histogram", "boxplot"), # значения переключателя
+
title="Plot type",
# название переключателя
+
action=hist.or.boxp)
# пользовательская функция
В заключение объявим функцию, которая будет выполняться в от- вет на взаимодействие с переключателем:
> hist.or.boxp <- function(panel) {
+
if (panel$plot.type == "histogram")
+
hist(panel$x)
+
else
+
boxplot(panel$x)
+
panel
+ }
Теперь все готово. У нас есть готовая панель с переключателем, ко- торый в зависимости от выбора покажет либо гистограмму, либо бокс- плот.

220
Графический интерфейс (GUI) для R
Рис. 71. Пример простого переключателя
Б.8. ESS и другие IDE
Теперь поговорим не о GUI в узком смысле слова, а о так называе- мых средствах разработки, IDE (integrated desktop environments), под которыми обычно понимаются сильно расширенные текстовые редак- торы со встроенными средствами компиляции, анализа исходного кода и т. д.
Тут прежде всего надо вспомнить ESS (http://ess.r-project.org).
ESS — это специализированная интерактивная среда или мода для ре- дактора Emacs. ESS является сокращением от фразы «Emacs Speaks
Statistics», которую можно перевести как «Emacs говорит на языке ста- тистики». Пакет ESS поддерживает не только систему статистического анализа R, но и многие другие статистические среды. При установке па- кета ESS (так, как это принято в вашейсистеме) и добавлении строчки для инициализации ESS в /.emacs
(require ’ess-site)
редактору Emacs становятся доступны две дополнительные моды:
• Мода ESS, которая предназначена для редактирования исход- ных файлов с использованием команд R (включая дополнитель- ную поддержку для редактирования Rnw-файлов), и

ESS и другие IDE
221
• Мода iESS — замена обычной R-консоли.
Интерпретатор R запускается с помощью команды «R»: Alt+X, а затем R и Enter. При старте спрашивается о местоположении рабочей директории для открываемой сессии R, а затем отображается стандарт- ное R-приглашение. Можно параллельно запустить насколько сессий, а также задействовать удаленный компьютер (команда ess-remote). Ра- бота в этой моде почти ничем не отличается от консоли, за исключением наличия стандартных возможностей редактирования текста в Emacs и дополнительного вспомогательного меню iESS. Из него можно полу- чить доступ к таким интересным возможностям, как, например, редак- тирование объектов R. Emacs — это прежде всего текстовый редактор,
поэтому подобные особенности делают анализ данных комфортнее.
ESS-мода инициализируется автоматически при загрузке файлов с расширением R. Emacs предоставляет пользователю подсветку синтак- сиса, выравнивание исходного кода по нажатии Tab, выполнение от- дельных строк, фрагментов и всего файла в интерпретаторе R. До- полнительное меню ESS позволяет получить доступ ко всем этим воз- можностям. Редактирование Rnw-файлов (смесь L
A
TEX- и R-команд для быстрого составления отчетов с помощью Sweave) чуть более мудре- ное: мода ESS активируется, только когда курсор оказывается внутри фрагментов с R-командами.
1   ...   11   12   13   14   15   16   17   18   19


написать администратору сайта