КулЛиб - Классная библиотека! Скачать книги бесплатно
Всего книг - 712679 томов
Объем библиотеки - 1401 Гб.
Всего авторов - 274525
Пользователей - 125067

Последние комментарии

Новое на форуме

Впечатления

Влад и мир про Шенгальц: Черные ножи (Альтернативная история)

Читать не интересно. Стиль написания - тягомотина и небывальщина. Как вы представляете 16 летнего пацана за 180, худого, болезненного, с больным сердцем, недоедающего, работающего по 12 часов в цеху по сборке танков, при этом имеющий силы вставать пораньше и заниматься спортом и тренировкой. Тут и здоровый человек сдохнет. Как всегда автор пишет о чём не имеет представление. Я лично общался с рабочим на заводе Свердлова, производившего

  подробнее ...

Рейтинг: 0 ( 0 за, 0 против).
Влад и мир про Владимиров: Ирландец 2 (Альтернативная история)

Написано хорошо. Но сама тема не моя. Становление мафиози! Не люблю ворьё. Вор на воре сидит и вором погоняет и о ворах книжки сочиняет! Любой вор всегда себя считает жертвой обстоятельств, мол не сам, а жизнь такая! А жизнь кругом такая, потому, что сам ты такой! С арифметикой у автора тоже всё печально, как и у ГГ. Простая задачка. Есть игроки, сдающие определённую сумму для участия в игре и получающие определённое количество фишек. Если в

  подробнее ...

Рейтинг: 0 ( 0 за, 0 против).
DXBCKT про Дамиров: Курсант: Назад в СССР (Детективная фантастика)

Месяца 3-4 назад прочел (а вернее прослушал в аудиоверсии) данную книгу - а руки (прокомментировать ее) все никак не доходили)) Ну а вот на выходных, появилось время - за сим, я наконец-таки сподобился это сделать))

С одной стороны - казалось бы вполне «знакомая и местами изьезженная» тема (чуть не сказал - пластинка)) С другой же, именно нюансы порой позволяют отличить очередной «шаблон», от действительно интересной вещи...

В начале

  подробнее ...

Рейтинг: +1 ( 1 за, 0 против).
DXBCKT про Стариков: Геополитика: Как это делается (Политика и дипломатия)

Вообще-то если честно, то я даже не собирался брать эту книгу... Однако - отсутствие иного выбора и низкая цена (после 3 или 4-го захода в книжный) все таки "сделали свое черное дело" и книга была куплена))

Не собирался же ее брать изначально поскольку (давным давно до этого) после прочтения одной "явно неудавшейся" книги автора, навсегда зарекся это делать... Но потом до меня все-таки дошло что (это все же) не "очередная злободневная" (читай

  подробнее ...

Рейтинг: +1 ( 1 за, 0 против).
DXBCKT про Москаленко: Малой. Книга 3 (Боевая фантастика)

Третья часть делает еще более явный уклон в экзотерику и несмотря на все стсндартные шаблоны Eve-вселенной (базы знаний, нейросети и прочие девайсы) все сводится к очередной "ступени самосознания" и общения "в Астралях")) А уж почти каждодневные "глюки-подключения-беседы" с "проснувшейся планетой" (в виде галлюцинации - в образе симпатичной девчонки) так и вообще...))

В общем герою (лишь формально вникающему в разные железки и нейросети)

  подробнее ...

Рейтинг: +1 ( 1 за, 0 против).

Математика на языке R [Сергей Алексеевич Зададаев] (pdf) читать онлайн

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

Федеральное государственное образовательное бюджетное
учреждение высшего образования
«ФИНАНСОВЫЙ УНИВЕРСИТЕТ
ПРИ ПРАВИТЕЛЬСТВЕ РОССИЙСКОЙ ФЕДЕРАЦИИ»
(Финансовый университет)
Департамент анализа данных, принятия решений
и финансовых технологий

С.А. Зададаев

МАТЕМАТИКА
НА ЯЗЫКЕ R
Учебник

МОСКВА
2018

УДК 519.85
ББК 32.973
З-15
Рецензенты:
В.И.
Соловьев,
д.э.н.,
профессор,
руководитель
ДАДПРиФТ Финансового университета при Правительстве РФ
Д.В. Сошников, к.ф.-м.н., доцент НИУ ВШЭ, координатор академических программ Департамента стратегических
технологий Майкрософт Россия

З-15

Зададаев, Сергей Алексеевич.
Математика на языке R: учебник / Финансовый университет
при Правительстве РФ. – Москва: Прометей, 2018. – 324 с.
(Учебники для вузов. Специальная литература)
ISBN 978-5-907003-59-0
Структурно учебник представляет собой 17 компьютерных практикумов по изучению и применению вычислительных возможностей языка R в решении базовых задач
математического анализа и линейной алгебры и календарно соответствует программе дисциплины «Компьютерный
практикум», читаемой в Финансовом университете при Правительстве РФ на первом курсе общеэкономических специальностей.
Содержательно в учебнике последовательно излагаются
основы языка программирования R с постепенным углублением по мере продвижения по осваиваемым навыкам в применении к высшей математике первого курса. В конце учебника приведен глоссарий по операторам и библиотекам R
для удобства последующего использования его в качестве
справочного руководства по R. Для комфортного программирования на R практикумы ориентированы на популярную
оболочку RStudio.
Учебник будет полезен всем студентам первых курсов,
изучающих математический анализ и линейную алгебру,
которые стремятся знать самые современные вычислительные технологии, а также тем, кто хочет научиться программировать на языке R и продолжать изучать его применение
в статистическом анализе и анализе данных.
Учебник может быть интересен аспирантам, научным
сотрудникам и преподавателям.

ISBN 978-5-907003-59-0

© Зададаев С.А., 2018
© Издательство «Прометей», 2018

https://t.me/it_boooks

Оглавление
ВМЕСТО ПРЕДИСЛОВИЯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
КОМПЕТЕНЦИИ ДИСЦИПЛИНЫ . . . . . . . . . . . . . . . . . . . . . . . . 10
ИНСТРУКЦИЯ ПО УСТАНОВКЕ ПАКЕТОВ R И RSTUDIO . . . . . . 12
ПРАКТИКУМ 1 . ВВЕДЕНИЕ В R (RSTUDIO) . . . . . . . . . . . . . . . . 14
Требования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Запуск RStudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Оператор комментария # . . . . . . . . . . . . . . . . . . . . . . . 16
Загрузка библиотек . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
R – калькулятор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Выводимая точность вычислений . . . . . . . . . . . . . . . . . 25
Массивы чисел в R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Некоторые дополнительные настройки RStudio . . . . . 30
Горячие клавиши в R. . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Забегая немного вперед . . . . . . . . . . . . . . . . . . . . . . . . . 32
Полезные команды в R . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Типичные ошибки в R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Задания для самостоятельной работы . . . . . . . . . . . . . 35
ПРАКТИКУМ 2 . ПРОГРАММИРОВАНИЕ
ПОЛЬЗОВАТЕЛЬСКИХ ФУНКЦИЙ В R (RSTUDIO) . . . . . . . . . . . 37
Задание математических функций . . . . . . . . . . . . . . . . 37
Построение графиков функций. . . . . . . . . . . . . . . . . . . 40
Задание произвольных пользовательских
функций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Использование векторизованных процедур:
оператор ifelse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Использование векторизованных процедур:
оператор […] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
— 3 —

Оглавление

Задания для самостоятельной работы . . . . . . . . . . . . . 56
Приложение к практикуму 2: Библиотека Cairo . . . . . 57
Приложение к практикуму 2: Функция Radical . . . . . 60
ПРАКТИКУМ 3 .
ИССЛЕДОВАНИЕ НУЛЕЙ И ЭКСТРЕМУМОВ ФУНКЦИЙ
(RSTUDIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Аналог Excel «Подбор параметра» . . . . . . . . . . . . . . . . 64
Процедура поиска нулей функции: uniroot . . . . . . . . . 76
Библиотека rootSolve . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Процедура поиска экстремума функции: optimize . . . 83
Процедура поиска экстремума функции: nlm . . . . . . . 88
Задания для самостоятельной работы . . . . . . . . . . . . . 91
ПРАКТИКУМ 4 .
ЧИСЛЕННОЕ НАХОЖДЕНИЕ ОПРЕДЕЛЕННОГО
И НЕСОБСТВЕННОГО ИНТЕГРАЛА В R (RSTUDIO) . . . . . . . . . . 93
Приближенное вычисление определенных
интегралов в R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Приближенное вычисление несобственных
интегралов в R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Задания для самостоятельной работы . . . . . . . . . . . . 102
ПРАКТИКУМ 5 .
ПОСТРОЕНИЕ ПОВЕРХНОСТЕЙ И ЛИНИЙ УРОВНЯ
В R (RSTUDIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Построение графиков функций двух переменных . . . 104
Линии уровня функции . . . . . . . . . . . . . . . . . . . . . . . . 107
Построение поверхностей . . . . . . . . . . . . . . . . . . . . . . 110
Задания для самостоятельной работы . . . . . . . . . . . . 119
ПРАКТИКУМ 6 .
СИМВОЛЬНОЕ ДИФФЕРЕНЦИРОВАНИЕ В R (RSTUDIO) . . . . 121
Тип expression (выражение) . . . . . . . . . . . . . . . . . . . . 121
Основной оператор символьного
дифференцирования D(f, «x»). . . . . . . . . . . . . . . . . . . 124
Базовые функции deriv и deriv3 . . . . . . . . . . . . . . . . 128
Универсальная процедура дифференциального
исчисления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Заключение к практикуму 6 . . . . . . . . . . . . . . . . . . . . 137
Задания для самостоятельной работы . . . . . . . . . . . . 138
— 4 —

Оглавление

ПРАКТИКУМ 7 .
ТИПЫ ДАННЫХ В R (RSTUDIO) . . . . . . . . . . . . . . . . . . . . . . . . . 140
R – динамически типизированный язык . . . . . . . . . . 140
Атомарные данные . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Логический тип (logical) . . . . . . . . . . . . . . . . . . . . . . . 142
Целочисленный тип (integer) . . . . . . . . . . . . . . . . . . . 143
Вещественный тип (numeric, double) . . . . . . . . . . . . . 145
Комплексные числа (complex). . . . . . . . . . . . . . . . . . . 145
Текстовые/строковые переменные (character). . . . . . 147
Факторные переменные (factor) . . . . . . . . . . . . . . . . . 150
Многомерные данные . . . . . . . . . . . . . . . . . . . . . . . . . 153
Векторы (vector) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Массивы (array) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Таблицы (data.frame). . . . . . . . . . . . . . . . . . . . . . . . . . 159
Списки (List) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Задания для самостоятельной работы . . . . . . . . . . . . 165
ПРАКТИКУМ 8 .
ЦИКЛИЧЕСКИЕ ПРОЦЕДУРЫ В R (RSTUDIO) . . . . . . . . . . . . 168
Цикл for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Цикл while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Цикл repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Векторизованная процедура sapply . . . . . . . . . . . . . . 176
Задания для самостоятельной работы . . . . . . . . . . . . 188
ПРАКТИКУМ 9 .
ЧИСЛЕННОЕ РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ
УРАВНЕНИЙ В R (RSTUDIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Задача Коши. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Схема Эйлера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Итог по схеме Эйлера . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
Задания для самостоятельной работы . . . . . . . . . . . . 209
ПРАКТИКУМ 10 .
ЗАДАНИЕ ВЕКТОРОВ И МАТРИЦ В R (RSTUDIO) . . . . . . . . . . 211
Объявление векторов . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Объявление матриц . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Задания для самостоятельной работы . . . . . . . . . . . . 220
ПРАКТИКУМ 11 .
СОХРАНЕНИЕ РЕЗУЛЬТАТОВ В R И ИМПОРТ/ЭКСПОРТ
ДАННЫХ ИЗ EXCEL (RSTUDIO) . . . . . . . . . . . . . . . . . . . . . . . . . 221
Команда read.table . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
— 5 —

Оглавление

Процедура read.csv или read.csv2 . . . . . . . . . . . . . . . .
Библиотека «xlsx» . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Процедура read.xlsx. . . . . . . . . . . . . . . . . . . . . . . . . . .
Процедура write.xlsx, а лучше write.xlsx2 . . . . . . . .
Формат RDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Задания для самостоятельной работы . . . . . . . . . . . .
Приложение Космос (для отличников) . . . . . . . . . . .

222
223
224
227
229
232
233

ПРАКТИКУМ 12 .
ВЕКТОРНАЯ АЛГЕБРА (RSTUDIO) . . . . . . . . . . . . . . . . . . . . . . 239
Задание векторов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Линейная комбинация векторов . . . . . . . . . . . . . . . . . 240
Скалярное произведение векторов . . . . . . . . . . . . . . . 241
Длина вектора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Косинус угла между векторами . . . . . . . . . . . . . . . . . 243
Произвольные выражения векторной алгебры . . . . . 244
Задания для самостоятельной работы . . . . . . . . . . . . 245
Ответы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
ПРАКТИКУМ 13 .
АЛГЕБРА МАТРИЦ (RSTUDIO) . . . . . . . . . . . . . . . . . . . . . . . . . 247
Задание матриц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Размерность матрицы . . . . . . . . . . . . . . . . . . . . . . . . . 250
Кванторы общности и существования . . . . . . . . . . . . 250
Транспонирование матриц . . . . . . . . . . . . . . . . . . . . . 251
Сложение матриц и умножение их на числа . . . . . . . 252
Произведение матриц . . . . . . . . . . . . . . . . . . . . . . . . . 253
Возведение в степень . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Определители матриц . . . . . . . . . . . . . . . . . . . . . . . . . 255
Обратная матрица . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Ранг матрицы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Вместо заключения к практикуму 13 . . . . . . . . . . . . . 259
Задания для самостоятельной работы . . . . . . . . . . . . 259
ПРАКТИКУМ 14 .
МАТРИЧНЫЕ УРАВНЕНИЯ (RSTUDIO) . . . . . . . . . . . . . . . . . . . 261
Системы линейных алгебраических уравнений . . . . 261
Матричные уравнения . . . . . . . . . . . . . . . . . . . . . . . . . 264
Системы нелинейных алгебраических
уравнений* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Задания для самостоятельной работы . . . . . . . . . . . . 273
— 6 —

Оглавление

ПРАКТИКУМ 15 . РАСШИРЕНИЕ DOUBLE-АРИФМЕТИКИ . . . 275
Алгебраически точное решение
матричных уравнений* . . . . . . . . . . . . . . . . . . . . . . . . 275
Разложение векторов по базису . . . . . . . . . . . . . . . . . 280
Заключение к практикуму 15 . . . . . . . . . . . . . . . . . . . 283
Задания для самостоятельной работы . . . . . . . . . . . . 284
ПРАКТИКУМ 16 .
СПЕКТРАЛЬНОЕ И СИНГУЛЯРНОЕ РАЗЛОЖЕНИЕ
МАТРИЦ (RSTUDIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Матрица линейного оператора . . . . . . . . . . . . . . . . . . 286
Преобразование матрицы линейного оператора . . . . 290
Собственные числа и собственные векторы матриц. . 292
Спектральное разложение . . . . . . . . . . . . . . . . . . . . . . 295
Преобразование матрицы квадратичной формы . . . . 296
Сингулярное разложение матриц* . . . . . . . . . . . . . . . 298
Задания для самостоятельной работы . . . . . . . . . . . . 301
ПРАКТИКУМ 17 .
ЗАДАЧИ ЛИНЕЙНОЙ ОПТИМИЗАЦИИ (RSTUDIO) . . . . . . . . . 304
Стандартная задача линейного программирования . 304
Целочисленное линейное программирование . . . . . . 310
Транспортная задача . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Задания для самостоятельной работы . . . . . . . . . . . . 317
Рекомендуемая литература к практикуму 17 . . . . . . 319
ЗАКЛЮЧЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
ГЛОССАРИЙ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

— 7 —

Вместо предисловия
Прежде, чем приступить к изучению и освоению
материала этого учебника, важно правильно представлять себе специфику современного прикладного
программирования. А она заключается в том, что нет
ничего более быстро меняющегося, чем информационные технологии.
В процессе изучения вам самим наверняка захочется написать более совершенную функцию или
процедуру, чем в обсуждаемом стандарте R. Сложно быстро изменить производственные технологии,
но легко – программные.
Так что, приготовьтесь к постоянным усовершенствованиям пакета R, его библиотек и оболочки
RStudio. Маловероятно, но возможно, что некоторые
операции вообще не будут работать из-за их кардинального обновления. Это совершенная норма настоящего времени, и если вы хотите быть на олимпе вычислительных и визуализрующих возможностей, то
решительно подключайте в свои союзники internet
с его российскими и англоязычными ресурсами профессионалов, обсуждающих и творящих на языке R
по всему миру.
Сама по себе семантика языка R достаточно проста
для понимания и использования, и все-таки советуем
на первых порах набирать программные коды вручную, а не копировать их из текста, если вы используете
электронный вариант учебника. Такие коды выделены
в тексте так:
— 8 —

Вместо предисловия

# Здравствуй, мир! :)
# Я сделаю тебя лучше! ))
На сайте автора www.zadadaev.сom есть форум
и обратная связь. Всем удачи!

— 9 —

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

Знания, умения, владения

1.

способность применять математические методы для
решения стандартных теоретических
и рикладных задач,
интерпретировать
полученные математические результаты

Знать вычислительные
методики основных задач
математического анализа
и линейной алгебры;
Уметь использовать компьютерные технологии при
реализации математических методов и моделей для
описания и анализа прикладных задач.
Владеть навыками вычислительной работы в R
и коммуникации с Excel.

2.

способность оформлять аналитические
и отчетные материалы по результатам
выполненной работы

Знать основные средства
визуализации количественных данных в R
Уметь использовать компьютерные технологии представления данных и графической визуализации
результатов применения

— 10 —

Компетенции дисциплины

Компетенция

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

— 11 —

Инструкция по установке пакетов
R и RStudio
Пропустите этот раздел, если R и RSudio уже установлены на компьютере.
Для установки R и RStudio под операционную систему Windows воспользуйтесь следующими ниже шагами.
Необходимо:
1. Включить интернет на все время установочных
действий.
2. По ссылке https://cran.r-project.org/ скачать
загрузчик R «R-3.4.2-win» (или более новой версии).
3. Запустить сохраненный загрузчик R, приняв
все его рекомендации и умолчания, дождаться окончания установки языка R.
4. Для Windows 7 (или ниже, например, XP) прописать путь к R в системе: ссылка примерно такая: Панель управления –> Система –> Дополнительные параметры системы –> Переменные среды –> В системных
переменных выбрать переменную «path» и нажать «изменить» –> в конец строки «path» через разделитель
«;» дописать путь к R (обычно это C:\Program Files\R –
так устанавливается по умолчанию) –> нажать ок.
5. для Windows 10 прописывать путь к папке R
не требуется.
6. По ссылке https://www.rstudio.com/products/
rstudio/download/ скачать соответствующий вашей
— 12 —

Инструкция по установке пакетов R и RStudio

операционной системе загрузчик RStudio (бесплатный
вариант RStudio Desktop FREE) и запустить его.
Для установки под другие операционные системы действуйте аналогичным образом и помните:
R не любит кириллицу в названии папок, категорически не переносит несколько точек в названии файлов
и в ряде случаев отказывается грузить библиотеки,
если за компьютером находится пользователь с ограниченными правами на текущую сессию.

Замечание
Часто для установки ряда библиотек, например,
важной библиотеки library("xlsx") для коммуникаций
R с Excel, на компьютер требуется установить Java.
Это можно сделать, пройдя последовательно по следующим ниже ссылкам и приняв все умолчания:
https://java.com/ru/download/
и
http://www.oracle.com/technetwork/java/javase/
downloads/jdk8-downloads-2133151.html
Не забудьте выбрать соответствующую операционную систему. После загрузки Java можно обычным
образом загрузить пакет «xlsx», подробное описание
которого приведено в последующих частях практикума.

— 13 —

Практикум 1 .
Введение в R (RStudio)
Требования
Для работы с текущими и последующими учебно-методическими материалами по R необходимо
иметь установленные на компьютере два пакета: интерпретатор языка программирования R и оболочку
RStudio. Процедура официального бесплатного скачивания и установки этих пакетов была описана в инструкции выше.
Настоятельно советуем установить эти два пакета на
своем личном компьютере (ноутбуке, планшете,…), т.к.
вместе с десятками тысяч других специалистов по всему
миру считаем это вычислительное средство одним из первых в линейке лидеров на данный момент времени.

Запуск RStudio
Для работы с R будем использовать удобную оболочку RStudio, которая уже сама будет осуществлять взаимодействие с интерпретатором языка R. Запустим RStudio,
щелкнув по соответствующему ярлыку (см.рис. 1).
Замечание . Если текст картинок трудно читаем, используйте экранное увеличение с помощью вращения колесика мыши при нажатой клавише Ctrl (для учебника в электронном виде).
— 14 —

Для работы с R будем использовать удобную оболочку RStudio, которая

уже сама будет осуществлять взаимодействие с интерпретатором языка R.

Запустим RStudio, щелкнув по соответствующему ярлыку
Введение в R (RStudio)

Рисунок
1 используйте экранное увеличение с
Рисунок
1
Если текст картинок трудно
читаем
помощью вращения колесика мыши при нажатой клавише

для учебника в

В результате
мы увидим раскрывшееся окно проэлектронном
виде
10 документ с будущим кодом
граммы. Создадим новый
В результате выбрав
мы увидиммышью
раскрывшееся
окно программы.
(скриптом),
в верхнем
левом Создадим
пункте документ
меню «R
script»кодом
или(скриптом),
нажав сочетание
новый
с будущим
выбрав мышьюклавиш
в верхнем
Ctrl+Shift+N
(см.
рис.
2):
левом
пункте меню «R
script»
или
нажав сочетание клавиш Ctrl+Shift+N:

Рисунок 2

Рисунок 2
После этого область RStudio разобьётся на четыре окна и примет
— 15 —
законченный вид:

Практикум 1

После этого область RStudio разобьётся на четыре
окна и примет законченный вид (см. рис. 3):

Рисунок 3 3
Рисунок

1.
2.
3.
4.

Левое верхнее:
окноверхнее:
рабочего листа
будущим кодом
языке R. Здесь мы
1. Левое
окно срабочего
листана
с будущим
кодом
на
языке
R.
Здесь
мы
будем
вводить
команды
R
будем вводить команды R и их запускать.
и их запускать.
Левое нижнее:
консоль
R – окно
с пошаговой
компиляцией
команд R. На
2. Левое
нижнее:
консоль
R – окно
с пошаговой
компиляцией
R. На этом
листе
мы программ.
будем виэтом
листе мы будемкоманд
видеть результаты
работы
наших
деть результаты работы наших программ.
Правое верхнее:
окноверхнее:
истории работы
R и текущих
значений
объектов.
3. Правое
окно истории
работы
R и текущихнижнее:
значений
объектов.
Правое
многофункциональное
окно: навигация / графика / пакеты
4. Правое нижнее: многофункциональное окно:
/ справка…
навигация / графика / пакеты / справка…
Оператор комментария #

Оператор комментария #

Как шутят программисты: оператор комментария – самый частый
Как шутят программисты: оператор комментаоператор
программирования.
Именно
рияв –любом
самыйязыке
частый
оператор в любом
языкеоставленные
програм- нами
мирования.
нами
поясненияремарки
пояснения
делают текстИменно
программоставленные
в каком-то смысле
интерактивным:
— ранее
16 — команд.
напоминают нам о смысле введенных

В языке R таким оператором является символ решетки (хэш): #, т.е.
компилятор R не будет воспринимать в качестве кода все, что написано после

Введение в R (RStudio)

делают текст программ в каком-то смысле интерактивным: ремарки напоминают нам о смысле введенных
ранее команд.
В языке R таким оператором является символ решетки (хэш): #, т.е. компилятор R не будет воспринимать в качестве кода все, что написано после символа
решетки «#» в текущей строке. Например, строка
# Здравствуй, мир! :)

послужит прекрасным заголовком, но само приветствие исполнено в R не будет.

Загрузка библиотек
Сейчас мы могли бы уже написать что-нибудь более содержательное в поле текста программы (левое
верхнее окно), однако при первом запуске RStudio нам
необходимо подгрузить из интернета актуальные библиотеки используемых процедур и функций в R. Это
можно сделать двумя способами.
Первый способ: набрать специальную команду загрузки в R требуемого пакета. Например, желательной
первичной загрузкой основной базы программных пакетов в R является загрузка библиотеки «Rcmdr». Введем в первой строке рабочего листа команду (можно
просто скопировать текст через буфер обмена):
install.packages("Rcmdr")
# пакет "Rcmdr"

# Загрузить из репозитория R

Важно знать, что в языке R различаются заглавные и прописные буквы, то есть символы «a» и «A» –
разные! Здесь Rcmdr не равно rcmdr!
Если теперь после набора этой строки нажать
Enter, то курсор перескочит на новую строку и ничего более не произойдет. Но если нажать сочетание
Ctrl+Enter, то курсор также перескочит на новую
строку, но код предыдущей строки при этом будет на— 17 —

Практикум 1

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

Рисунок 4 4
Рисунок

Замечание На рисунке
заметить,
что команда
install.packages
с
Замечание .
На можно
рисунке
можно
заметить,
чтовыводится
команРисунок 4

параметром
dependencies = TRUE,
однако, с версии
3.4.2 данный параметр
перестал быть
да
install.packages
выводится
с параметром
dependencies
=
Замечание На рисунке можно заметить, что команда install.packages выводится с
актуальным.
Здесь
и
далее
его
указывать
не
надо.
TRUE,
однако,
с
версии
3.4.2
данный
параметр
перестал
параметром dependencies = TRUE, однако, с версии 3.4.2 данный параметр перестал быть
быть Такую
актуальным.
Здесь
инедалее
не надо.
актуальным.
Здесь установку
и далее его указывать
надо. его
требуется
делать
одинуказывать
раз для каждого
компьютера.

Такую установку требуется делать один раз для
Если используются дополнительные библиотеки, то поступают аналогично.
Такую установку
требуется делать
одиниспользуются
раз для каждого компьютера.
каждого
компьютера.
Если
дополниВторой
способ
вызватьтоинтерактивное
загрузчика
библиотек,
Если
используются
дополнительные
библиотеки,
тоокно
поступают
аналогично.
тельные
библиотеки,
поступают
аналогично.
Второй
способ:
вызвать
пройдя
по меню Tools
–> Install
Packages…интерактивное окно заВторой способ вызвать интерактивное окно загрузчика библиотек,
грузчика библиотек, пройдя по меню Tools –> Install
пройдя по меню Tools –> Install Packages…
Packages… (см. рис. 5):

Рисунок 5

Замечание На рисунке пункт меню
Install Packages…
Рисунок
5 находится в самом верху окна, однако,
Рисунок 5
с версии старше 3.4.2 этот пункт будет уже вторым. Вообще говоря, надо привыкнуть к

постоянным
и улучшениям
R18
и RStudio.
Например,
заверху
год написания
этого
Замечаниемодификациям
На рисунке пункт
меню Install
в самом
окна, однако,
—Packages…
— находится
практикума
и RStudio
раза. Такая
частаяговоря,
модификация
позволяет этому
Вообще
надо привыкнуть
к
с версии
старшеR 3.4.2
этот были
пунктобновлены
будет уже 4вторым.

постоянным модификациям и улучшениям R и 14
RStudio. Например, за год написания этого
практикума R и RStudio были обновлены 4 раза. Такая частая модификация позволяет этому
14

Введение в R (RStudio)
Замечание . На рисунке пункт меню Install Packages…
находится в самом верху окна, однако, с версии старше
3.4.2 этот пункт будет уже вторым. Вообще говоря, надо
привыкнуть к постоянным модификациям и улучшениям R
и RStudio. Например, за год написания этого практикума R
и RStudio были обновлены 4 раза. Такая частая модификавычислительному
средствуэтому
оставаться
чрезвычайно актуальным.
после установки
ция позволяет
вычислительному
средству Если
оставаться
какого-либо
пакета
R
выдаст
сообщение,
что
пакет
был
собран
под
более
свежую
чрезвычайно актуальным. Если после установки какого-ли- версию R
– это не является
ошибкой,
но является
намеком,
что
пора обновить
пакет
R ибоRStudio.
бо пакета
R выдаст
сообщение,
что
пакет
был собран
под
лее свежую версию R – это не является ошибкой, но является
намеком, что пора обновить пакет R и RStudio.

В появившемся
окнетолько
остается
только
ввести необВ появившемся
окне остается
ввести
необходимые
имена пакетов
ходимые имена пакетов (если несколько сразу, то через
(если несколько
то через
пробел)
и нажать
кнопку
пробел)сразу,
и нажать
кнопку
Install
(см. рис.
6):Install:

Рисунок
Рисунок 6 6

Однако, даже когда библиотека загружена на комОднако,
когда
библиотека загружена
на компьютер
одним из
пьютердаже
одним
из описанных
способов, обращение
к ее
процедурам
функциямк веетекущем
сеансе
(в текущем
описанных
способов, иобращение
процедурам
и функциям
в текущем
запуске RStudio) остается недоступным, пока мы не
сеансе (в
текущем запуске
RStudio) остается
недоступным,
подключим,
не активизируем
в текущей
сессии этупока
би- мы не
блиотеку
командой library(name).
Это эту
сделано
в R длякомандой
подключим,
не активизируем
в текущей сессии
библиотеку
экономии оперативной памяти.
library(name).Например,
Это сделано мы
в R для
экономии
оперативной
памяти.
хотим
использовать
расширенные
возможности алгебры матриц с помощью библиотеки
Например,
мыТогда
хотим мы
использовать
возможности
«Matrix».
должны расширенные
один раз загрузить
этот алгебры
на компьютер
матриц спакет
помощью
библиотекикомандой:
"Matrix". Тогда мы должны один раз загрузить
install.packages("Matrix")
# пакет "Matrix"

этот пакет на компьютер командой:
install.packages("Matrix")

# Загрузить из репозитория R

# Загрузить из —
репозитория
R пакет "Matrix"
19 —

и всякий раз, когда собираемся использовать этот пакет, нам необходимо в
начале сессии запускать команду активации:

Практикум 1

и всякий раз, когда собираемся использовать этот пакет, нам необходимо в начале сессии запускать команду активации:
library(Matrix) # Активизировать загруженный в R
# пакет "Matrix"

Задание 1. В R есть встроенные данные о зависимости скорости автомобилей от тормозного пути (исследование Ford, 1920 год). Эти данные хранятся в зарезервированной переменной под именем «cars». Для
того, чтобы понять, как хранятся данные о скоростях
и дистанциях тормозных путей в cars требуется запустить команду glimpse(cars), которая входит в библиотеку dplyr.
Решение. Фактически нам необходимо сделать
три небольшие операции:
1. Загрузить на компьютер библиотеку dplyr (это
очень удобная и популярная библиотека для манипуляций с различными данными):
install.packages("dplyr")
# пакет "dplyr"

# Загрузить из репозитория R

2. Активизировать эту библиотеку в текущей сессии:
library(dplyr) # Активация библиотеки "dplyr"

3. Вызвать соответствующую функцию из пакета:
glimpse(cars) # Вызов функции glimpse, которая описы# вает структуру данных

Далее мы выделяем эти три набранные строки
левой клавишей мыши и запускаем код на компиляцию, щелкнув мышкой по клавише Run (или нажав
Ctrl+Enter) (см. рис. 7).
В результате в окне консоли получим полную информацию о переменной cars. Мы вернемся к этому отчету несколько позже.
— 20 —

3. Вызвать соответствующую функцию из пакета:
glimpse(cars) # Вызов функции glimpse, которая описывает структуру данных

Далее мы выделяем эти три набранные строки левой клавишей мыши и
запускаем код на компиляцию, щелкнув мышкой по клавише Run (или нажав

Введение в R (RStudio)

Ctrl+Enter):

Рисунок 7
Рисунок
7

В результате в окне консоли получим полную информацию о
переменной cars. Мы вернемся к этому отчету несколько позже.
16
R – калькулятор

Перечислим основные математические функции,
набрав которые в качестве кода, мы сразу получим вычисленные значения:
sin(2); cos(2); tan(2); asin(0.5); acos(0.5); atan(2); log(0.3);
log(1024, 2); exp(2); log10(4); sinh(2); cosh(2); tanh(2);
asinh(2); acosh(2); atanh(1/2);
Замечание . Здесь и далее условно в качестве аргументов
функций взяты произвольные числа.

Обратим особое внимание, что в R принято использовать точку в качестве десятичного разделителя
(в Excel, кстати, более заумно: в ячейках используют
запятую, а в макросах – точку).
Расшифруем некоторые из приведенных функций:
exp(2)
log(1024, 2)
2,
log(0.3)
abs(-5)

2

# Экспонента от 2, e
# Логарифм 1024 по основанию
# log2 1024
# Натуральный логарифм числа 0.3,
# ln0.3
# Модуль от -5, −5
— 21 —

Практикум 1

atan2(0,-3)
# Угол между осью ox и вектором
# (-3,0) / здесь x,y наоборот!
3
2**3; 2^3
# Возведение в степень 2 в 3, 2 /
# возможны оба варианта
sqrt(4)
# Арифметический корень из 4, 4
factorial(5)
# Факториал числа 5, 5!=1*2*3*4*5
choose(5, 3)
# Число сочетаний 3 из 5: С35
pi
# Число π
exp(1)
# Число е

Полезны также функции округления (представление чисел):
round(1.0023857, 6)
# Округляет число 1.0023857
# до 6 знака после запятой включ.
signif(1.0023857, 6)
# Округляет число 1.0023857
# до 6 значащих цифр включ.
trunc(-3.999)
# Отсечение дробной части -3.999
ceiling(-4.2)
# Округление до целого в мень# шую сторону (по модулю)
floor(-4.2)
# Округление до целого в боль# шую сторону (по модулю)

Задание 2. Вычислить с точностью не более четвертой цифры после запятой выражение
ln −2 (tg2

(

3

)

30.231 )

−1

sin (6!+ 3.15 − e

4.002

)

.

Решение. Разумеется, нам не следует сразу же бросаться набирать этого «крокодила» в строке. Надежнее
всего разбить данное выражение на небольшие части,
сохранить промежуточные вычисления в новых переменных и потом уже образовывать ответ.
Но для сохранения промежуточных ответов нам
понадобится оператор присваивания, состоящий из
двух символов, напоминающих стрелку влево:

в зависимости от направления от кого кому происходит присваивание (см. также рис. 8):
a