Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

R. К вершинам мастерства. С решениями и комментариями

Покупка
Новинка
Артикул: 856012.01.99
Доступ онлайн
2 699 ₽
В корзину
R — безусловно лучшая среда для интерактивного анализа данных. Тем не менее язык R имеет множество особенностей, которые иногда скудно документированы. В данной книге Хэдли Уикем, один из лучших в мире гуру по R, проясняет эти неясные уголки и знакомит с современными библиотеками языка. В книге приведены решения и подробные комментарии ко всем упражнениям. Издание предназначено программистам R, желающим углубить свои знания, а также будет полезно разработчикам на других языках, стремящимся узнать, что же делает язык R таким особенным.
Уикем, Х. R. К вершинам мастерства. С решениями и комментариями : практическое руководство / Х. Уикем, М. Гроссер, Х. Буманн ; пер. с англ. А. Ю. Гинько. – Москва : ДМК Пресс, 2024. - 754 с. – ISBN 978-5-93700-247-1. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2204265 (дата обращения: 03.04.2025). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Хэдли Уикем, Мальте Гроссер, Хеннинг Буманн
R.  
К вершинам  
мастерства 


Hadley Wickham, Malte Grosser, Henning Bumann
Advanced R
Advanced R Solutions
Second Edition


Хэдли Уикем, Мальте Гроссер, Хеннинг Буманн
R.  
К вершинам  
мастерства 
С решениями 
и комментариями
Москва, 2024


УДК	 004.438R
ББК 32.973.22
У35
Уикем Х., Гроссер М., Буманн Х.
У35 	 R. К вершинам мастерства / пер. с англ. А. Ю. Гинько. – М.: ДМК Пресс, 2024. – 
752 с.: ил. 
ISBN 978-5-93700-247-1
R – безусловно лучшая среда для интерактивного анализа данных. Тем не менее 
язык R имеет множество особенностей, которые иногда скудно документированы. 
В данной книге Хэдли Уикем, один из лучших в мире гуру по R, проясняет эти 
неясные уголки и знакомит с современными библиотеками языка. В книге приведены решения и подробные комментарии ко всем упражнениям.
Издание предназначено программистам R, желающим углубить свои знания, 
а также будет полезно разработчикам на других языках, стремящимся узнать, что 
же делает язык R таким особенным.
УДК  004.438R
ББК  32.973.22
All Rights Reserved. Authorised translation from the English language edition published by 
CRC Press, a member of the Taylor & Francis Group LLC.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения 
владельцев авторских прав.
ISBN 978-0-815-38457-1 (англ.) 	
©  2019 by Taylor & Francis Group, LLC
	
©  2022 Malte Grosser, Henning 
Bumann, Hadley Wickham
ISBN 978-5-93700-247-1 (рус.) 	
©  Перевод, оформление, издание,  
ДМК Пресс, 2024


Посвящается Мине,  
лучшему напарнику в написании книги.
Мы будем по тебе скучать


Содержание
От издательства.......................................................................................................19
О переводчике.........................................................................................................20
Предисловие.............................................................................................................21
Глава 1  Введение.................................................................................................24
1.1	
Почему R?...........................................................................................................24
1.2	
Для кого эта книга..............................................................................................26
1.3	
Что вы узнаете из этой книги...........................................................................27
1.4	
Чего вы не узнаете из этой книги.....................................................................28
1.5	
Метатехники......................................................................................................28
1.6	
Список рекомендуемой литературы................................................................29
1.7	
Помощь в разработке.........................................................................................29
1.8	
Благодарности....................................................................................................30
1.9	
Соглашения........................................................................................................34
1.10	
Выходные данные..............................................................................................34
Часть I  ОСНОВЫ..................................................................................................36
Введение....................................................................................................................37
Глава 2  Имена и значения................................................................................39
2.1	
Введение.............................................................................................................39
2.2	
Основы связывания...........................................................................................41
2.2.1	
Синтаксически неправильные имена.................................................42
2.2.2	
Упражнения...........................................................................................43
2.3	
Копирование при изменении...........................................................................44
2.3.1	
tracemem()..............................................................................................45
2.3.2	
Вызовы функций...................................................................................45
2.3.3	
Списки...................................................................................................47
2.3.4	
Датафреймы..........................................................................................48
2.3.5	
Символьные векторы............................................................................49
2.3.6	
Упражнения...........................................................................................50
2.4	
Размеры объектов..............................................................................................51
2.4.1	
Упражнения...........................................................................................52
2.5	
Изменение на месте..........................................................................................53
2.5.1	
Объекты с единственной привязкой...................................................53
2.5.2	
Окружения.............................................................................................56
2.5.3	
Упражнения...........................................................................................57
2.6	
Отвязывание и сборщик мусора.......................................................................58
2.7	
Ответы на контрольные вопросы.....................................................................60


Содержание	
7
Глава 3  Векторы...................................................................................................61
3.1	
Введение.............................................................................................................61
3.2	
Атомарные векторы...........................................................................................63
3.2.1	
Скаляры.................................................................................................63
3.2.2	
Создание длинных векторов с помощью функции c().......................64
3.2.3	
Пропущенные значения.......................................................................65
3.2.4	
Определение и приведение типов векторов.......................................66
3.2.5	
Упражнения...........................................................................................67
3.3	
Атрибуты............................................................................................................67
3.3.1	
Получение и установка.........................................................................68
3.3.2	
Имена.....................................................................................................69
3.3.3	
Размерности..........................................................................................70
3.3.4	
Упражнения...........................................................................................71
3.4	
Атомарные векторы S3......................................................................................72
3.4.1	
Факторы.................................................................................................73
3.4.2	
Даты.......................................................................................................75
3.4.3	
Даты со временем.................................................................................75
3.4.4	
Длительности........................................................................................76
3.4.5	
Упражнения...........................................................................................77
3.5	
Списки................................................................................................................77
3.5.1	
Создание................................................................................................77
3.5.2	
Определение и приведение типов.......................................................79
3.5.3	
Матрицы и массивы..............................................................................80
3.5.4	
Упражнения...........................................................................................80
3.6	
Датафреймы и тибблы.......................................................................................80
3.6.1	
Создание................................................................................................82
3.6.2	
Имена строк...........................................................................................85
3.6.3	
Вывод на экран......................................................................................86
3.6.4	
Извлечение подмножеств.....................................................................87
3.6.5	
Определение и приведение табличных типов....................................88
3.6.6	
Списки в колонках................................................................................89
3.6.7	
Матрицы и датафреймы в колонках....................................................90
3.6.8	
Упражнения...........................................................................................91
3.7	
NULL....................................................................................................................91
3.8	
Ответы на контрольные вопросы.....................................................................92
Глава 4  Подмножества.......................................................................................93
4.1	
Введение.............................................................................................................93
4.2	
Выбор нескольких элементов...........................................................................94
4.2.1	
Атомарные векторы..............................................................................94
4.2.2	
Списки...................................................................................................97
4.2.3	
Матрицы и массивы..............................................................................97
4.2.4	
Датафреймы и тибблы..........................................................................98
4.2.5	
Сохранение размерностей.................................................................100
4.2.6	
Упражнения.........................................................................................101
4.3	
Выбор одного элемента...................................................................................101
4.3.1	
[[............................................................................................................102


Содержание
4.3.2	
$............................................................................................................103
4.3.3	
Отсутствующие и выходящие за границы индексы.........................104
4.3.4	
@ и slot()..............................................................................................105
4.3.5	
Упражнения.........................................................................................105
4.4	
Извлечение множеств и присваивание..........................................................106
4.5	
Применение.....................................................................................................107
4.5.1	
Таблицы поиска (символьное извлечение подмножеств)...............107
4.5.2	
Сопоставление и объединение в ручном режиме  
(целочисленное извлечение подмножеств)......................................107
4.5.3	
Случайные выборки и бутстрэпы (целочисленное извлечение 
подмножеств)......................................................................................108
4.5.4	
Упорядочивание (целочисленное извлечение подмножеств).........109
4.5.5	
Разворачивание агрегированных данных (целочисленное 
извлечение подмножеств)..................................................................110
4.5.6	
Удаление столбцов из датафрейма (символьное извлечение 
подмножеств)......................................................................................111
4.5.7	
Выбор строк по условию (логическое извлечение подмножеств).....111
4.5.8	
Булева алгебра против множеств (логическое и целочисленное 
извлечение подмножеств)..................................................................112
4.5.9	
Упражнения.........................................................................................114
4.6	
Ответы на контрольные вопросы...................................................................114
Глава 5  Управляющие структуры.................................................................115
5.1	
Введение...........................................................................................................115
5.2	
Выбор................................................................................................................116
5.2.1	
Некорректные входные значения......................................................117
5.2.2	
Векторизованный if............................................................................117
5.2.3	
Оператор switch()................................................................................118
5.2.4	
Упражнения.........................................................................................119
5.3	
Циклы...............................................................................................................120
5.3.1	
Распространенные ловушки...............................................................121
5.3.2	
Сопутствующие инструменты............................................................122
5.3.3	
Упражнения.........................................................................................123
5.4	
Ответы на контрольные вопросы...................................................................123
Глава 6  Функции.................................................................................................124
6.1	
Введение...........................................................................................................124
6.2	
Основы функций..............................................................................................125
6.2.1	
Компоненты функций........................................................................126
6.2.2	
Примитивные функции......................................................................127
6.2.3	
Функции первого класса.....................................................................127
6.2.4	
Вызов функций....................................................................................128
6.2.5	
Упражнения.........................................................................................129
6.3	
Комбинирование функций..............................................................................130
6.4	
Лексический поиск..........................................................................................131
6.4.1	
Маскировка имен................................................................................132
6.4.2	
Функции против переменных............................................................133


Содержание	
9
6.4.3	
С чистого листа....................................................................................134
6.4.4	
Динамический поиск..........................................................................135
6.4.5	
Упражнения.........................................................................................135
6.5	
Ленивые вычисления.......................................................................................136
6.5.1	
Промисы..............................................................................................136
6.5.2	
Аргументы по умолчанию..................................................................137
6.5.3	
Пропущенные аргументы...................................................................138
6.5.4	
Упражнения.........................................................................................140
6.6	
… (точка–точка–точка)....................................................................................141
6.6.1	
Упражнения.........................................................................................143
6.7	
Выход из функции...........................................................................................144
6.7.1	
Явный и неявный возврат..................................................................144
6.7.2	
Невидимые значения.........................................................................145
6.7.3	
Ошибки................................................................................................146
6.7.4	
Обработчики выхода...........................................................................146
6.7.5	
Упражнения.........................................................................................148
6.8	
Формы записи функций..................................................................................149
6.8.1	
Преобразование в префиксную форму записи.................................149
6.8.2	
Префиксная форма.............................................................................151
6.8.3	
Инфиксная форма...............................................................................152
6.8.4	
Замещающая форма...........................................................................153
6.8.5	
Особая форма......................................................................................154
6.8.6	
Упражнения.........................................................................................155
6.9	
Ответы на контрольные вопросы...................................................................156
Глава 7  Окружения.............................................................................................157
7.1	
Введение...........................................................................................................157
7.2	
Основы окружений..........................................................................................158
7.2.1	
Основы.................................................................................................158
7.2.2	
Важные окружения.............................................................................160
7.2.3	
Родители..............................................................................................161
7.2.4	
Присваивание в родительском окружении <<-.................................163
7.2.5	
Получение и установка значений......................................................163
7.2.6	
Продвинутые привязки......................................................................165
7.2.7	
Упражнения.........................................................................................166
7.3	
Рекурсия по окружениям.................................................................................167
7.3.1	
Упражнения.........................................................................................169
7.4	
Особые окружения...........................................................................................169
7.4.1	
Окружения пакетов и путь для поиска..............................................170
7.4.2	
Окружения функций...........................................................................171
7.4.3	
Пространства имен.............................................................................172
7.4.4	
Окружения выполнения.....................................................................175
7.4.5	
Упражнения.........................................................................................178
7.5	
Стеки вызовов..................................................................................................178
7.5.1	
Простые стеки вызовов......................................................................179
7.5.2	
Ленивые вычисления..........................................................................180
7.5.3	
Фреймы................................................................................................181
7.5.4	
Динамический поиск..........................................................................182
7.5.5	
Упражнения.........................................................................................182


Содержание
7.6	
Окружения как структуры данных.................................................................182
7.7	
Ответы на контрольные вопросы...................................................................183
Глава 8  Состояния..............................................................................................184
8.1	
Введение...........................................................................................................184
8.1.1	
Требования..........................................................................................186
8.2	
Сигнализирование о состояниях....................................................................186
8.2.1	
Ошибки................................................................................................187
8.2.2	
Предупреждения.................................................................................188
8.2.3	
Сообщения...........................................................................................189
8.2.4	
Упражнения.........................................................................................191
8.3	
Игнорирование состояний..............................................................................191
8.4	
Обработка состояний.......................................................................................193
8.4.1	
Объекты состояний.............................................................................194
8.4.2	
Обработчики выхода...........................................................................195
8.4.3	
Обработчики вызова...........................................................................196
8.4.4	
Стеки вызовов.....................................................................................199
8.4.5	
Упражнения.........................................................................................200
8.5	
Пользовательские состояния..........................................................................201
8.5.1	
Предпосылки.......................................................................................202
8.5.2	
Сигнализирование..............................................................................202
8.5.3	
Обработка............................................................................................204
8.5.4	
Упражнения.........................................................................................205
8.6	
Практическое применение.............................................................................205
8.6.1	
Значение ошибки................................................................................205
8.6.2	
Значения успеха и ошибки.................................................................206
8.6.3	
Повторное сигнализирование............................................................208
8.6.4	
Запись состояний................................................................................208
8.6.5	
Отсутствие поведения по умолчанию...............................................210
8.6.6	
Упражнения.........................................................................................212
8.7	
Ответы на контрольные вопросы...................................................................213
Часть II  Функциональное программирование........................................214
Введение..................................................................................................................215
Глава 9  Функционалы.......................................................................................218
9.1	
Введение...........................................................................................................218
9.2	
Мой первый функционал: map().....................................................................220
9.2.1	
Создание атомарных векторов..........................................................221
9.2.2	
Анонимные функции и сокращенная запись...................................223
9.2.3	
Передача дополнительных аргументов.............................................225
9.2.4	
Имена аргументов...............................................................................227
9.2.5	
Изменение другого аргумента...........................................................228
9.2.6	
Упражнения.........................................................................................229
9.3	
Стиль purrr........................................................................................................230
9.4	
Разновидности функции map.........................................................................232
9.4.1	
Вход и выход одного типа: modify()...................................................232


Похожие

Доступ онлайн
2 699 ₽
В корзину