Успеваемость Студенты Студентки
1 Отличники 2 3
2 Хорошисты 5 7
3 Троечники 10 14
4 Двоечники 2 1
[[2]]
[1] Отличники Хорошисты Троечники Двоечники
Levels: Двоечники < Троечники < Хорошисты < Отличники
[[3]]
[,1] [,2] [,3] [,4] [,5]
[1,] 1 4 7 10 13
[2,] 2 5 8 11 14
[3,] 3 6 9 12 15
[[4]]
[,1] [,2] [,3]
[1,] 1 6 11
[2,] 2 7 12
[3,] 3 8 13
[4,] 4 9 14
[5,] 5 10 15
Теперь проверим структуру данных Моя.Таблица с помощью следующей функции:
> str(Мой.Список)
List of 4 # список из объектов
$ :'data.frame': 4 obs. of 3 variables:
..$ Успеваемость: Factor w/ 4 levels "Двоечники","Отличники",..: 2 4 3 1
..$ Студенты : num [1:4] 2 5 10 2
..$ Студентки : num [1:4] 3 7 14 1
$ : Ord.factor w/ 4 levels "Двоечники"<"Троечники"<..: 4 3 2 1
$ : int [1:3, 1:5] 1 2 3 4 5 6 7 8 9 10 …
$ : num [1:5, 1:3] 1 2 3 4 5 16 17 8 19 20 …
# характеризуется тип данных по каждой переменной $ (объекту) списка
Теперь попробуем поработать в RStudio как с обычным калькулятором. С этой целью подсчитаем, насколько вырос курс американского доллара к рублю по итогам торгов 17 декабря 2014 года. Обратите внимание, что при работе с языком R дробная часть числа отделяется точкой, а не запятой.
Согласно данным Банка России, официальный курс доллара США, установленный на 18 декабря 2014 г., равнялся 67.7851 руб. Поскольку Центробанк каждый рабочий день по итогам утренних торгов на Московской межбанковской валютной биржи устанавливает официальные курсы валют, которые вступают в силу лишь на следующий день, то, следовательно, официальный курс доллара на 18 декабря 2014 г. по сути является его текущим курсом по итогам торгов, прошедших 17 декабря 2014 г. В свою очередь, по итогам торгов от 16 декабря 2014 г. курс доллара равнялся 61.1512 руб., а потому к моменту их закрытия 17 декабря 2014 г. американская валюта подорожала до 67.7851 руб.
Давайте с помощью R поработаем с этими цифрами. Для того, чтобы выяснить, например, насколько рублей и во сколько раз за один день подорожала американская валюта, нужно, во-первых, от второй цифры отнять первую, а, во-вторых, вторую цифру поделить на первую. Иначе говоря, нам необходимо выполнить два следующих простейших действия: 1). 67.7851 – 61.1512 и 2). 67.7851/61.1512.
С этой целью последовательно щелкнем мышкой в верхней левой части RStudio по опциям File/New File/R Script, а затем введем с клавиатуры вышеуказанные цифры и алгебраические символы в редакторе кода. Затем выделим их мышкой и нажмем на клавиатуре кнопки Ctrl и Enter (Ввод). В результате в консоли (нижней левой части) RStudio появятся не только введенные нами математические выражения, но и ответы – см. рис. 3. Отправить на консоль эти выражения можно также последовательно щелкнув в верху, в левой части RStudio, по опциям Code/ Run Selected Line(s) (Код/Отправить на консоль выбранные строки).
Рис. 3
В результате в консоли появятся следующие два выражения:
> 67.7851 – 61.1512
[1] 6.6339
> 67.7851/61.1512
[1] 1.108484
При этом после символа > в начале абзаца даны введенные нами в редакторе кода выражения, а после [1] даются полученные ответы: [1]6.6339 и [1] 1.108484. Таким образом по итогам утренних торгов, прошедших 17 декабря 2014 г., курс доллара вырос на 6.6339 руб. или в 1.108484 раза. Почему выводимые результаты в R начинаются с [1]? Это объясняется тем, что R по умолчанию рассматривает любые данные как массив данных. В данном случае выводимое число – это состоящий из одного элемента вектор, который и нумеруется соответствующей порядковой цифрой [1]. В том случае, когда вектор состоит из множества элементов, занимающих сразу несколько строк, тогда в начале каждой строки в квадратных скобках выдается порядковый номер (подсчет ведется от начала вектора) первого элемента каждой строки.
В R помимо уже использовавшихся нами для вычитания и деления символов « – » и « / » применяются также символы «+», «*», «^» (или «**»), соответственно, для сложения, умножения и возведения в степень. Например, если умножить число 1.108484 на 100 и отнять 100, то тогда получим: 1.108484*100 -100=10. 8484%. Таким образом с помощью этой операции мы выясним, что по итогам утренних торгов, прошедших 17 декабря 2014 г., курс доллара по сравнению с торгами предыдущего дня вырос на 10. 85%.
R имеет встроенную систему помощи, которая содержит подробные разъяснения, а также ссылки на литературу и примеры для каждой функции из установленных пакетов. Правда, все эти справки даются на английском языке. Например, если пользователь хочет получить справку по функции lm, с помощью которой в R решаются уравнения регрессии, то с этой целью ему надо ввести команду ?lm, либо help(lm). В результате он получит справочный файл по этой функции. Но если пользователю необходимо получить информацию об этой функции, содержащуюся во всех имеющихся справочных файлах, то в этом случае надо ввести команду help.search (lm) или ??lm.
Команда example(lm) дается в том случае, когда пользователь хочет ознакомиться с конкретными примерами по работе с этой функцией, с ее помощью можно также ознакомиться и с примерами по другим функциям, если внутри скобок вместо lm указать их название. Команда RSiteSearch(“lm”) позволяет получить справочные материалы по функции lm, имеющиеся в онлайн-руководствах и в заархивированных рассылках. Команда apropos("lm", mode="function") даст список всех функций, в которых есть название lm. Вполне естественно, что если в скобках после apropos вместо lm указать, например, foo, то тогда можно получить аналогичную информацию о foo. Список всех доступных руководств по загруженным пакетам можно получить с помощью команды vignette(). Ну а если запустить команду help.start(), то в правой нижней части RStudio появится обширная справочная литература по R. В первую очередь, из этого списка пользователю, знающему английский язык, можно посоветовать внимательно познакомиться с пособием «An Introduction to R» («Введение в язык R»). Кроме того, тем, кто владеет английским языком, весьма полезно будет также проштудировать еще и книгу Andrie de Vries, Joris Meys «R For Dummies» (Андри де Фриз, Джорис Мейс «R для чайников»), в которой весьма доступно излагаются основные азы работы с языком.
Хочу также порекомендовать нашим читателям прочитать следующие замечательные книги на русском языке: Роберт И. Кабаков «R в действии. Анализ и визуализация данных в программе R (пер. с англ. Полины А. Волковой)», С. Э. Мастицкий и В. К. Шитиков «Статистический анализ и визуализация данных с помощью R», а также коллективный труд – «Наглядная статистика. Используем R!» А. Б. Шипунова, Е. М. Балдина, П.А. Волковой, А. И. Коробейникова, С. А. Назаровой, С. В. Петрова и В. Г. Суфиянова.
Поскольку наша книга посвящена прогнозированию на валютном рынке, поэтому программированию на языке R мы будем учиться на конкретных примерах. При этом наиболее трудные моменты автор постарается объяснить, как можно проще и доступнее даже для самых неподготовленных читателей. Если же у Вас останутся какие-то вопросы, то ответы на них можно получить в перечисленной выше литературе по R. Но прежде чем перейти к главной теме нашей книги остановлюсь на наиболее распространенных ошибках, которую допускают новички, работающие на языке R.
В том случае, если программа выдает информацию о допущенной ошибке, то вполне возможно, что начинающий программист допустил одну из следующих ошибок:
1. Забыл поставить в написанном им программном коде кавычки там, где они обязательны. Так, в команде install. packages(“zoo”) название устанавливаемого пакета нужно обязательно ставить в кавычках.
2. Написал функцию прописными буквами, в то время как ее нужно было написать строчными. Например, команды ?lm, либо help (lm) будут поняты R, а вот при вводе команд ?Lm, Help (lm) появиться сообщение об ошибке. Аналогичная ошибка появится, если вместо команды по загрузке пакета library(MASS) будет ошибочно введена команда library(mass), в которой название пакета дано строчными буквами.