BioStatistica — 16. Тема 12. Азы работы с R (с помощью Rstudio)

 

Онлайн-конспект курса
"Биометрическая обработка данных в зоологии и экологии"

Д.А. Шабанов

Тема 11. Некоторые методы, характерные для зоологии и экологии

Тема 12. Азы работы с R (с помощью RStudio)  
Биометрия-15 Биометрия-16  

 

 

Тема 12. Азы работы с R (с помощью RStudio)

 

12.1. Установка R и RStudio

R – свободно распространяемый программный продукт. Это, в первую очередь, язык программирования для решения задач в области статистики и моделирования. Хотя для начала работы с R надо преодолеть достаточно высокий порог вхождения, в дальнейшем эти усилия сторицей оправдываются благодаря возможности использовать разнообразные расширения для R. Этот язык оказывается полезен и  в тех случаях, когда надо упростить выполнение рутинных последовательностей операций. Поскольку последовательность действий в R может быть представлена как скрипт (последовательность команд), и этот скрипт всегда может быть изменен в любом месте, чтобы повторить ранее выполненную последовательность операций в R достаточно изменить скрипт и запустить его заново.

Для начала работы с R его следует установить. Инсталлятор R скачивается тут.

Работу с R облегчает оболочка RStudio. Это тоже свободный продукт, инсталлятор которого можно скачать тут. Устанавливать RStudio следует после R.

 

12.2. Рабочая зона RStudio

RStudio -- свободная интегрированная среда разработки, предназначенная для R. Окно RStudio состоит из нескольких панелей, среди которых особое внимание следует обратить на панель Source (редактор скриптов, или редактор кода), панель Console (консоль) и панель History (история).

В панели Source (редактор скриптов, или редактор кода) для выполнения текущей строки кода можно воспользоваться сочетанием клавиш Ctrl+Enter или кнопкой Run Line(s). Код будет выполнен, и курсор переместится на следующую строку. Так можно обеспечить пошаговое выполнение команд.

Для выполнения сразу нескольких строк (или части строки) надо выделить необходимый фрагмент и нажать клавиши Ctrl+Enter (или воспользоваться кнопкой Run Line(s), расположенной в верхней части окна редактора). Чтобы выполнить все строки скрипта следует нажать Ctrl+Shift+Enter или воспользоваться кнопкой Run All, расположенной в верхней части окна редактора скриптов. Чтобы вызвать подсказку (или завершить начатую команду) следует нажать клавишу Tab. Чтобы получить подробное определение команды, нужно навести курсор на ее название (или выделить его) и нажать F2.

Панель Console (консоль) позволяет выполнять отдельные команды, в ней отражается результат выполнения команд, поданных как из этого окна, так и из редактора кодов.

Ctrl+1 - перемещает курсор в окно редактора скриптов;

Ctrl+2 - перемещает курсор в консоль;

Ctrl+L - Очищает окно консоли от текста;

Esc - прерывает вычисления.

Панель History (история) позволяет просмотреть историю команд, выделить некоторые из них и отправить в консоль (Send to Console) или в редактор скриптов (Send to Source).

 

12.3. Перенос файла данных из Excel в R (на основе текста Виктора Ковалева)

Работа в R чаще всего идет с таблицами (DataFrame). Для начинающих работать с R типичной может быть ситуация, когда уже имеющийся файл с данными следует перенести в эту среду.  Среди прочих форматов R принимает таблицы с расширением *.csv. Это специальный формат файлов, где данные таблицы представлены в виде строк. Ячейки при этом разделяются определенным знаком пунктуации (в стандартном случае – запятой).

Сохранить таблицу в формате *.csv можно в программе Exсel через пункт меню «Сохранить как…». При этом во вкладке «Тип файла» выбирается пункт CSV (разделители — запятые). Сохраненный в таком виде документ уже можно использовать в программе RStudio. Впрочем, с теми настройками, с которыми чаще всего приходится иметь дело пользователям в Украине, Exсel использует запятые как десятичные разделители. Для разделения ячеек в таком случае Exсel будет использовать точку с запятой, а в качестве десятичного знака — запятую. При выполнении команды read.csv в RStudio (команда для прочтения таблиц) такая таблица прочтена не будет, потому что read.csv с настройками по умолчанию требует запятую, как разделитель столбцов, и точку, как десятичный знак.

Есть два пути решения. Первый — заменить (хотя бы в стандартном "Блокноте" Windows или, к примеру, в Word`е) в файле *.csv запятые на точки, а затем — точки с запятой на запятые. Второй — указать RStudio после команды read.csv, какие знаки используются в импортируемом файле. Второй путь, вероятно, проще; он подробнее описан немного ниже.

Рабочий файл с нужным разрешением следует или поместить в рабочую директорию RStudio, или разместить там, где надо, сменив в RStudio рабочую директорию. Путь для указания рабочей директории следующий: Session – Set Working Directory – Choose Directory.

Рис. 12.3.1. Смена рабочей директории в RStudio

Появится диалоговое окно, где необходимо указать соответствующую папку в памяти компьютера. При этом нужную папку открывать не нужно! Необходимо только выделить ее и нажать кнопку «Выбор папки».

Рис. 12.3.2. Выбор новой рабочей директории в RStudio

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

Теперь можно открыть таблицу с помощью команды read.csv.

read.csv ('*.csv') — данная команда откроет файл с именем «*» из корневой директории. Название обязательно вводить в одинарных кавычках. Однако, как уже указано, эта команда воспринимает запятую, как разделитель столбцов. Чтобы решить эту проблему, в самой команде следует указать дополнительные параметры.

read.csv ('*.csv', sep = ";", dec = ",").

sep = ";" — задает знак, которым разделены столбцы (в данном случае точка с запятой),

dec = "," задает десятичный разделитель (в данном случае запятая)

В результате выполнения этой команды R прочтет файл, но этого нелостаточно для работы с содержащимися в нем данными. Дело в том, что язык R работает с объектами; просто открыть датафрейм и работать с ним не получится. Надо сделать так, чтобы R рассматривал датафрейм как объект. Для этого следует создать объект и присвоить ему датафрейм из открытого файла. Для этого надо выполнить команду:

«название объекта» <- read.csv ('*.csv', sep = ";", dec = ",")

Например, если с помощью Excel данные из файла Pelophylax_example.sta были преобразованы в файл Pelophylax_example.csv, из которого следует сделать объект под названием frogs, следует ввести следующую команду:
frogs <- read.csv ('Pelophylax_example.csv', sep = ";", dec = ",") .

Указанную команду следует ввести в окно редактора скриптов (левое верхнее) RStudio, поставить на строку с этой командой курсор и нажать Ctrl+Enter. Если нужно выполнить только часть программы, надо выделить эту часть курсором, а затем нажать Ctrl+Enter.

Важным источником возможных ошибок, которые могут помешать работе в R, является путаница с разновидностями знаков препинания. К примеру, если фрагмент подаваемой команды сформулирована так: sep = “;”, R его попросту не поймет. Двойные (как и одинарные) кавычки должны быть прямыми, т.е. такими, какие в наиболее распространенной раскладке ставятся при нажатии клавиши, соответствующей русской букве «Э» (кстати, вот пример третьего типа кавычек…). Чтобы R выполнил команду, надо писать: sep = ";".

Несколько облегчает задачу то, что в том случае, если RStudio понимает синтаксис команды, он подсвечивает названия файлов, разделители и другие элементы набранного пользователем текста.

Рис. 12.3.3. "Подсветка" элементов команды в RStudio: название файла и символ запятой (dec) подсвечены зеленым цветом, а точка с запятой (sep) — не подсвечена

Убедиться, что в объекте frogs находится наш файл данных, а также вспомнить его структуру можно с помощью команды str().  

Рис. 12.3.4. В результате выполнения команды str(frogs) в консоли RStudio показана структура файла с данными

Обратите внимание, что в окне редактора скриптов появилась вкладка frogs. Раскрыв ее, можно посмотреть сам датафрейм.

 

12.4. Пример построения графика (на основе текста Виктора Ковалева)

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

plot (x, y, ...) – х и у – значения по оси абсцисс и оси ординат.

Ввод команд облегчается тем, что RStudio, по мере набора их названий, во всплывающих подсказках (хинтах) предлагает возможные продолжения и приводит их описания.

 

Рис. 12.4.1. Пример подсказки от RStudio; в редакторе скриптов введено "plo...", и программа предлагает список команд, начинающихся с этого буквосочетания; выбрав одно их них, можно получить необходимые пояснения

Для выбора столбца из таблицы необходимо ввести название объекта-таблицы; на этом этапе RStudio тоже с готовностью предложит поправку.

Рис. 12.4.3. Всплывающая подсказка с названиями переменных в датафрейме

Чтобы выбрать часть объекта, следует использовать значок доллара. Естественно, и на этом этапе RStudio не оставит пользователя без своих подсказок. Вначале надо указать, какая переменная будет показана на оси абсцисс...

Рис. 12.4.3. Всплывающая подсказка с названиями переменных в датафрейме

...а потом выбрать столбец для оси ординат. В результате получится такая команда: 

plot (frogs$sex, frogs$l) .

Здесь frogs – название объекта-таблицы; l, sex – название столбцов, выбранных для анализа. Выполнение этой команды приводит к построению графика рассеяния.

Рис. 12.4.4. График рассеяния построен