R представляет собой набор программных средств для манипулирования данными, вычисления и графического отображения. Кроме этого возможно:
– эффективная обработка и хранение данных,
– набор операторов для вычислений на массивах, особенно матрицах,
– цельная, непротиворечивая, комплексная коллекция утилит для анализа данных,
– графические средства для анализа данных и отображения или непосредственно на компьютере или при выводе на печать, и
– хорошо разработанный, простой и эффективный язык программирования (называемый «S»), который включает условные выражения, циклы, определяемые пользователем рекурсивные функции и средства ввода и вывода. Действительно, большинство поддерживаемых системой функций сами написаны на языке S.
Термин «окружение/среда» предназначен, чтобы характеризовать ее как полностью запланированную и последовательную систему, а не постепенно возникшего конгломерата весьма специфических и негибких инструментов, как часто имеет место с другим программным обеспечением анализа данных.
R является средством разработки методов интерактивного анализа данных. Она была разработана быстро и была расширена большим количеством пакетов. Однако, большинство программ, написанных в R, принципиально являются программами-однодневками, написанными для конкретного случая анализа данных.
R можно рассмотреть как реализацию языка S, который разработан в Bell Laboratories Риком Беккером, Джоном Чемберсом и Алланом Уилксом, и который собственно лежит в основе систем S-Plus.
Эволюция основ языка S характеризуется четырьмя книгами Джона Чемберса с соавторами. Для R основой является «Новый Язык S: Среда программирования для анализа данных и графики», написанной Ричардом А. Беккером, Джоном М. Чемберсом и Алланом Р. Уилксом. Новые функции S, опубликованные 1991, даны в «Статистических моделях в S», отредактированном Джоном М. Чемберсом и Тревором Дж. Хэсти. Формальные методы и классы пакета методов основаны на описанных в «Программировании с данными» Джоном М. Чемберсом. См. Приложение F [Ссылки], для точной ссылки.
Сейчас есть много книг, которые описывают использование R для анализа данных и статистики, и документация для S/S-Plus может, как правило, использоваться с R, если помнить различия между реализациями S.
Наше введение в среду R не упоминает статистику, но много людей используют R в качестве системы статистики. Будем думать о ней как о среде, в пределах которой были реализованы много классических и современных статистических методов. Некоторые из них встроены в основу среды R, но многие предоставлены как пакеты. В составе R существует около 25 пакетов (названных «стандартными» и «рекомендуемыми» пакетами), и еще больше доступно через семейство сайтов CRAN (через http://CRAN.R -project.org) и из других источников. Более подробную информацию о пакетах рассмотрим позже (см. Главу 13 [Пакеты]).
Большинство классических статистик и многое из последних методик доступно для использования в R, но пользователи должны быть готовы к небольшим усилиям для поиска нужного.
Есть важное различие в философии между S (и, следовательно, R) и другими основными статистическими системами. В S статистический анализ обычно делается как ряд шагов с промежуточными результатами, сохраненными в объектах. Таким образом, тогда как SAS и SPSS дадут обильные результаты регрессионного или дискриминантного анализа, R выведет минимум результатов и сохранит их в подогнанном объекте для последующего использования функциями R.
Самый удобный способ пользоваться R – это использовать графическую рабочую станцию с окнами. Это руководство нацелено на пользователей, у которых есть это средство. В особенности мы будем иногда обращаться к использованию R в Windows, хотя обширный объем того, что сказано, обычно применим к любой реализации среды R.
Большинство пользователей, время от времени, непосредственно сталкивается с операционной системой на своем компьютере. В этом руководстве, главным образом, обсуждается взаимодействие с операционной системой на машинах UNIX. Если R исполняется под Windows или Mac OS, то будет необходимо внести некоторые небольшие корректировки.
Установка рабочей станции, чтобы в полной мере воспользоваться настраиваемыми функциями R, является простой, хотя и несколько утомительной процедурой и здесь рассматриваться не будет. При трудностях пользователям следует найти местного опытного специалиста.
При использовании программы R она выдает запрос ожидания входных команд. Запрос по умолчанию ‘>», который на UNIX совпадает с запросом оболочки, и таким образом, может казаться, что ничего не происходит. Однако, как увидим, при желании легко изменить на другой запрос R. Предположим, что запрос оболочки UNIX – «$».
В использовании R под UNIX предложенная процедура для первого случая следующая:
– Создать отдельный подкаталог, скажем ’work’ для файлов с данными, на которых будет использоваться R. Он будет рабочим каталогом всякий раз при использовании R для этой определенной задачи.
$ mkdir work
$ cd work
– Начать программу R командой
$ R
– Здесь можно давать команды
– Для завершения программы R введите:
q ()
В этом этапе Вас спросят, хотите ли Вы сохранить данные своего сеанса R. На некоторых системах это будет сделано с помощью диалогового окна, а на других Вы получите текстовый запрос, на который Вы можете ответить «да», «нет» или «отмена» (достаточно будет ввести первую букву) для сохранения данных перед выходом, выйти без сохранения, или вернуться в сеанс R. Сохраненные данные будут доступны в будущем сеансе R.
Дальнейшие сеансы R требуют меньше действий.
– Сделайте ’work’ рабочим каталогом и запустите программу как прежде:
$ cd work
$ R
– Используйте программу R, которая завершится командой q () в конце сеанса.
Для использования R под Windows процедура в основном такая же. Создайте папку как рабочий каталог, и установите его в поле «Start In’ ярлыка R. Затем запустите R, дважды щелкая по иконке.
Читателям, желающим испытать R на компьютере, прежде чем приступить настоятельно советуем проработать вводный сеанс, данный в Приложении A [Сеанс выборки].
У R есть встроенное справочное средство. Для получения дополнительной информации о любой определенной именованной функции, например solve, напишите команду:
> help (solve)
Альтернатива:
>? solve
Для средств, указанных специальными символами, параметр должен быть включен в двойные или одинарные кавычки, делая его «символьной строкой»: это также необходимо для нескольких слов с синтаксическим значением, включая if, for и function.
> help (» [[»)
Может использоваться любая форма символа кавычки для исключения других кавычек, как в строке, «It’s important». Наше соглашение состоит в предпочтительности использования символа двойной кавычки.
На большинстве установок R справка доступна в формате HTML, достаточно выполнить:
> help.start ()
что запустит Веб-браузер, предоставляющий возможность использовать гиперссылки в справке. Ссылки «Search Engine and Keywords’ на странице, загруженной help.start (), особенно полезны, так как содержат высокоуровневый список понятий, используемый при поиске доступных функций. Это может оказаться отличным способом быстро решить проблемы и понять широкий спектр возможностей R.
Команда help.search (альтернативно??) позволяет искать справку различными способами.
Например,
>?? solve
Попробуйте ?help.search для деталей и большего количества примеров.
Пример на теме справки обычно можно выполнить:
> example (topic)
У версий R для Windows есть другие дополнительные системы справочной информации. Используйте:
>?help
для получения дальнейшей информации.
Технически R является языком выражений с очень простым синтаксисом. Он учитывает регистр, как большинство других программ UNIX, таким образом, A и а являются различными символами и ссылаются на разные переменные. Набор символов, которые могут использоваться для имен R, зависит от операционной системы и страны, в которой R исполняется (технически говоря, от используемой локализации – locale). Обычно разрешены все алфавитно-цифровые символы плюс».» и «_», с ограничением, что имя должно начинаться с».» или буквы, и если начинается с».», то второй символ не может быть цифрой. Имена в фактически неограниченны.
Для портативного кода R (включая использовуемый в пакетах R) должна использоваться только A—Za—z0—9.
Простые команды состоят из выражений (expression), либо присвоений (assignments). Если выражение вводится как команда, то оно вычисляется, выводится (пока специально не сделано невидимым) и значение теряется. Присвоение также вычисляет выражение и передает значение переменной, но результат автоматически не выводится.
Команды разделены либо точкой с запятой (»;»), либо новой строкой. Простые команды могут группироваться в одно составное выражение фигурными скобками (» {» и»}»). Комментарии могут быть помещены практически где угодно, начинаясь со знака «решетки» («#»), при этом все до конца строки является комментарием.
Если команда не полна в конце строки, то R даст особое приглашение, по умолчанию:
+
на второй и последующих строках и продолжит читать ввод, пока команда синтаксически не полна. Этот запрос может быть изменен пользователем. Мы, как правило, будем опускать приглашение продолжения ввода и обозначим продолжение простым отступом.
Командные строки, вводимые на консоли, ограничены в размере доя 4095 байт (не символов).
R реализует механизм для повторного вызова и выполнения предыдущих команд. Вертикальные клавиши со стрелками на клавиатуре могут использоваться для прокрутки вперед и назад по истории команд. Как только команда локализована таким способом, курсор может быть перемещен в пределах команды, используя горизонтальные клавиши со стрелками, и символы могут быть удалены клавишей DEL или добавлены другими клавишами. Более подробная информация предусмотрена далее: см. Приложение C [Редактор командной строки].
Кроме того, редактор текста Emacs предоставляет более полный механизм поддержки (через ESS – Emacs Speaks Statistic) для интерактивной работы с R. Смотри раздел «R and Emacs» в The R statistical system FAQ.
Если команды были сохранены во внешнем файле, скажем «command. R ’ в рабочем каталоге ’work’, то они могут быть выполнены в любое время в сеансе R командой:
> source («commands. r»)
Для Windows Source также доступен в меню File. Функция sink:
> sink("record.lis»)
отклонит весь последующий вывод консоли во внешний файл ‘record.lis’. Команда
> sink ()
восстановит вывод в консоли еще раз.
Сущности, которые R создает и манипулирует, известны как объекты (object). Они могут быть переменными, массивами чисел, символьными строками, функциями или более общими структурами, построенных из таких компонентов.
Во время сеанса R объекты создаются и хранятся по имени (обсуждается в следующей секции). Команда R:
> objects ()
(также как ls ()) может использоваться для вывода на экран имен (в основном) объектов, которые в настоящий момент хранятся в пределах R. Набор объектов, сохраненных в настоящий момент, называют рабочей областью (workspace).
Для удаления объектов доступна команда rm:
> rm (x, y, z, ink, junk, temp, foo, bar)
Все объекты, создаваемые во время сеанса R, могут храниться постоянно в файле для использования в будущем сеансе R. В конце каждого сеанса R предоставляется возможность сохранить все в имеющиеся в данный момент объекты. Если подтвердить необходимость этого, то объекты записываются в файл, называемый». RData’ в текущем каталоге, а строки команд, использованных в сеансе, сохраняются в файл». Rhistory’.
При последующем запуске R рабочая область загружается из этого файла. Одновременно загружается присоединенная история команд.
Рекомендуется использовать отдельные рабочие каталоги для анализов, проводимых с R. Очень распространено использовать для анализа объекты с именами x и y. Подобные имена часто значимы в контексте отдельного анализа, но может быть довольно трудно решить то, чем они отличаются, если несколько анализов было выполнено в одном и том же каталоге.