Предисловие редактора....13
Добро пожаловать в Книгу рецептов R....14
Благодарности....19
Глава 1. Начало работы и получение справочной информации....20
1.1. Загрузка и установка R....21
1.2. Установка RStudio....23
1.3. Запуск RStudio....24
1.4. Ввод команд....25
1.5. Выход из RStudio....27
1.6. Прерывание R....29
1.7. Просмотр прилагаемой документации....29
1.8. Получение справки по функции....31
1.9. Поиск в прилагаемой документации....32
1.10. Получение справки по пакету....34
1.11. Поиск справки в интернете....35
1.12. Поиск соответствующих функций и пакетов....37
1.13. Поиск в списках рассылки....38
1.14. Отправка вопросов в Stack Overflow или в другое место в сообществе....39
Глава 2. Немного основ....43
2.1. Вывод на экран....43
2.2. Установка переменных....45
2.3. Перечисление переменных....46
2.4. Удаление переменных....47
2.5. Создание вектора....49
2.6. Базовая статистика....50
2.7. Создание последовательностей....52
2.8. Сравнение векторов....54
2.9. Выбор элементов вектора....55
2.10. Векторная арифметика....58
2.11. Разбираемся с приоритетом оператора....59
2.12. Меньше печатать и больше делать....61
2.13. Создание конвейера вызовов функций....62
2.14. Как избежать некоторых распространенных ошибок....65
Глава 3. Навигация по программному обеспечению....70
3.1. Получение и настройка рабочего каталога....70
3.2. Создание нового проекта RStudio....71
3.3. Сохранение своего рабочего пространства....73
3.4. Просмотр истории команд....74
3.5. Сохранение результата предыдущей команды....75
3.6. Отображение загруженных пакетов через путь поиска....76
3.7. Просмотр списка установленных пакетов....77
3.8. Доступ к функциям в пакете....78
3.9. Доступ к встроенным наборам данных....79
3.10. Установка пакетов из CRAN....81
3.11. Установка пакета из GitHub....82
3.12. Установка или изменение зеркала CRAN по умолчанию....83
3.13. Запуск сценария....85
3.14. Запуск пакетного сценария....86
3.15. Поиск домашнего каталога R....88
3.16. Настройка запуска R....89
3.17. Использование R и RStudio в облаке....92
Глава 4. Ввод и вывод....94
4.1. Ввод данных с клавиатуры....94
4.2. Вывод меньшего числа цифр (или большего)....95
4.3. Перенаправление вывода в файл....97
4.4. Список файлов....98
4.5. Не удается открыть файл в Windows – что делать?....100
4.6. Чтение записей фиксированной ширины....101
4.7. Чтение файлов табличных данных....103
4.8. Чтение из файлов CSV....106
4.9. Запись в файлы CSV....108
4.10. Чтение табличных или CSV-данных из интернета....110
4.11. Чтение данных из Excel....111
4.12. Запись таблицы данных в Excel....112
4.13. Чтение данных из файла SAS....114
4.14. Чтение данных из таблиц HTML....116
4.15. Чтение файлов со сложной структурой....118
4.16. Чтение из баз данных MySQL....122
4.17. Доступ к базе данных с помощью dbplyr....125
4.18. Сохранение и транспортировка объектов....126
Глава 5. Структуры данных....129
5.1. Добавление данных в вектор....136
5.2. Вставка данных в вектор....137
5.3. Правило повторного использования....138
5.4. Создание фактора (категориальной переменной)....140
5.5. Объединение нескольких векторов в один вектор и фактор....141
5.6. Создание списка....142
5.7. Выбор элементов по месту в списке....144
5.8. Выбор элементов списка по имени....145
5.9. Создание ассоциативного списка «имя/значение»....147
5.10. Удаление элемента из списка....148
5.11. Преобразование списка в вектор....149
5.12. Удаление элементов NULL из списка....150
5.13. Удаление элементов списка с использованием условия....151
5.14. Инициализация матрицы....153
5.15. Операции с матрицами....154
5.16. Задание описательных имен для строк и столбцов матрицы....155
5.17. Выбор одной строки или столбца из матрицы....156
5.18. Инициализация таблицы данных из данных столбца....157
5.19. Инициализация таблицы данных из данных строки....158
5.20. Добавление строк в таблицу данных....161
5.21. Выбор столбцов таблицы по их месту в таблице данных....163
5.22. Выбор столбцов таблицы данных по имени....166
5.23. Изменение имен столбцов таблицы данных....168
5.24. Удаление значений NA из таблицы данных....169
5.25. Исключение столбцов по имени....170
5.26. Объединение двух таблиц данных....171
5.27. Объединение таблиц данных по общему столбцу....172
5.28. Приведение атомарных типов данных....174
5.29. Приведение структурированных типов данных....175
Глава 6. Преобразование данных....178
6.1. Применение функции ко всем элементам списка....178
6.2. Применение функции к каждой строке таблицы данных....180
6.3. Применение функции к каждой строке матрицы....181
6.4. Применение функции к каждому столбцу....183
6.5. Применение скалярной функции к векторам или спискам....184
6.6. Применение функции к группам данных....187
6.7. Создание нового столбца по условию....188
Глава 7. Строки и даты....190
7.1. Получение длины строки....192
7.2. Конкатенация строк....192
7.3. Извлечение подстрок....193
7.4. Разбиение строки по разделителю....194
7.5. Замена подстрок....196
7.6. Генерация всех попарных комбинаций строк....196
7.7. Получение текущей даты....198
7.8. Преобразование строки в дату....198
7.9. Преобразование даты в строку....199
7.10. Преобразование года, месяца и дня в объект Date....200
7.11. Получение даты по юлианскому календарю....201
7.12. Извлечение частей даты....202
7.13. Создание последовательности дат....203
Глава 8. Вероятность....205
8.1. Подсчет количества комбинаций....207
8.2. Генерация комбинаций....207
8.3. Генерация случайных чисел....208
8.4. Генерация воспроизводимых случайных чисел....210
8.5. Генерация случайной выборки....211
8.6. Генерация случайных последовательностей....213
8.7. Случайная перестановка вектора....214
8.8. Расчет вероятностей для дискретных распределений....214
8.9. Расчет вероятностей для непрерывных распределений....216
8.10. Преобразование вероятностей в квантили....217
8.11. Построение графика функции плотности....218
Глава 9. Общая статистика....223
9.1. Получение сводки данных....225
9.2. Расчет относительных частот....227
9.3. Представление факторов в виде таблицы и создание таблиц сопряженности....228
9.4. Проверка категориальных переменных на независимость....229
9.5. Расчет квантилей (и квартилей) набора данных....230
9.6. Инвертирование квантиля....231
9.7. Преобразование данных в z-оценки....231
9.8. Проверка среднего значения выборки (t-критерий)....232
9.9. Формирование доверительного интервала для среднего значения....234
9.10. Формирование доверительного интервала для медианы....235
9.11. Тестирование доли выборки....236
9.12. Формирование доверительного интервала для доли....237
9.13. Проверка на нормальность....238
9.14. Тест последовательностей....239
9.15. Сравнение средних значений двух выборок....240
9.16. Непараметрическое сравнение местоположений двух выборок....242
9.17. Проверка значимости корреляции....243
9.18. Проверка групп на предмет наличия равных пропорций....245
9.19. Парные сравнения между средними значениями групп....246
9.20. Проверка двух выборок, чтобы определить, принадлежат ли они одному закону распределения....247
Глава 10. Графики....249
10.1. Создание точечной диаграммы....253
10.2. Добавление заголовка и меток....254
10.3. Добавление (или удаление) координатной сетки....255
10.4. Применение темы к графику ggplot....259
10.5. Создание точечной диаграммы....262
10.6. Добавление (или удаление) условных обозначений....264
10.7. Построение регрессионной линии точечной диаграммы....268
10.8. Построение точечных диаграмм....271
10.9. Создание по одной точечной диаграмме....273
10.10. Создание гистограммы....275
10.11. Добавление доверительных интервалов в гистограмму....277
10.12. Раскраска гистограммы....280
10.13. Построение линии из точек x и y....282
10.14. Изменение типа, ширины или цвета линии....283
10.15. Построение нескольких наборов данных....286
10.16. Добавление вертикальных или горизонтальных линий....287
10.17. Создание диаграммы размаха....289
10.18. Создание диаграммы размаха для каждого уровня фактора....291
10.19. Создание гистограммы....293
10.20. Добавление оценки плотности к гистограмме....294
10.21. Создание графика квантиль-квантиль....296
10.22. Создание других графиков квантиль-квантиль....298
10.23. Построение переменной в нескольких цветах....301
10.24. График функции....303
10.25. Отображение нескольких графиков на одной странице....305
Глава 11. Линейная регрессия и дисперсионный анализ....310
11.1. Простая линейная регрессия....312
11.2. Множественная линейная регрессия....314
11.3. Получение регрессионной статистики....315
11.4. Общая информация о регрессии....319
11.5. Линейная регрессия без свободного члена....322
11.6. Регрессия только тех переменных, которые сильно коррелируют с вашей зависимой переменной....323
11.7. Линейная регрессия с эффектами взаимодействия....326
11.8. Выбор наиболее подходящих переменных регрессии....328
11.9. Регрессия для подмножества данных....332
11.10. Использование выражения в формуле регрессии....334
11.11. Полиномиальная регрессия....335
11.12. Регрессия на преобразованных данных....336
11.13. Поиск наиболее подходящего степенного преобразования (тест Бокса–Кокса)....338
11.14. Формирование доверительных интервалов для коэффициентов регрессии....343
11.15. Построение невязок регрессии....343
11.16. Диагностика линейной регрессии....345
11.17. Обнаружение влиятельных наблюдений....349
11.18. Тестирование невязок на наличие автокорреляции (критерий Дарбина–Уотсона)....350
11.19. Предсказываем новые значения....352
11.20. Формирование интервалов предсказаний....353
11.21. Однофакторный дисперсионный анализ....353
11.22. Создание диаграммы взаимодействия....355
11.23. Находим различия между средними значениями групп....357
11.24. Устойчивый дисперсионный анализ (критерий Краскела–Уоллиса)....359
11.25. Сравнение моделей с использованием функции anova....361
Глава 12. Полезные хитрости....363
12.1. Просмотр данных....363
12.2. Вывод на экран результата присваивания....365
12.3. Суммирование строк и столбцов....366
12.4. Вывод данных в столбцах....367
12.5. Объединение данных....368
12.6. Поиск положения определенного значения....369
12.7. Выбор каждого n-го элемента вектора....369
12.8. Поиск минимумов или максимумов....370
12.9. Генерация всех комбинаций нескольких переменных....372
12.10. Преобразование таблицы данных....373
12.11. Сортировка таблицы данных....374
12.12. Удаление атрибутов из переменной....375
12.13. Раскрываем структуру объекта....376
12.14. Определяем время выполнения кода....379
12.15. Избавляемся от предупреждений и сообщений об ошибках....380
12.16. Извлечение аргументов функции из списка....381
12.17. Определение собственных бинарных операторов....383
12.18. Избавляемся от сообщения о запуске....384
12.19. Получение и настройка переменных среды....385
12.20. Разбиение кода на секции....386
12.21. Локальная параллелизация выполнения кода....387
12.22. Удалённая параллелизация выполнения кода....389
Глава 13. За пределами основных цифр и статистики....393
13.1. Минимизация или максимизация однопараметрической функции....393
13.2. Минимизация или максимизация многопараметрической функции....394
13.4. Метод главных компонент....397
13.5. Простая ортогональная регрессия....398
13.6. Поиск кластеров в данных....400
13.7. Прогнозирование бинарной переменной (логистическая регрессия)....403
13.8. Бутстрэппинг....405
13.9. Факторный анализ....407
Глава 14. Анализ временных рядов....412
14.1. Представление данных временного ряда....413
14.2. Построение данных временных рядов....416
14.3. Извлечение самых старых или самых последних наблюдений....418
14.4. Выбор элементов из временного ряда....420
14.5. Объединение нескольких временных рядов....422
14.6. Заполнение временного ряда....424
14.7. Смещение временного ряда....426
14.8. Вычисление последовательных различий....428
14.9. Выполнение расчетов по временным рядам....429
14.10. Вычисление скользящей средней....430
14.11. Применение функции по календарному периоду....432
14.12. Применение функции rollapply....434
14.13. Построение функции автокорреляции....435
14.14. Тестирование временного ряда на наличие автокорреляций....437
14.15. Построение функции частичной автокорреляции....438
14.16. Поиск корреляций с временным лагом между двумя временными рядами....440
14.17. Удаление тренда из временного ряда....441
14.18. Подгонка модели ARIMA....444
14.19. Удаление незначимых коэффициентов ARIMA....447
14.20. Выполнение диагностики для модели ARIMA....449
14.21. Прогнозирование по модели ARIMA....451
14.22. Построение прогноза....452
14.23. Тестирование на наличие возвращения к среднему....453
14.24. Сглаживание временного ряда....456
Глава 15. Простое программирование....458
15.1. Выбор из двух альтернатив: if/else....459
15.2. Итерация с помощью цикла....461
15.3. Определение функции....462
15.4. Создание локальной переменной....463
15.5. Выбор из нескольких альтернатив: функция switch....464
15.6. Определение значений по умолчанию для параметров функции....465
15.7. Подать сигнал с помощью сообщения об ошибке....466
15.8. Защита от ошибок....467
15.9. Создание анонимной функции....468
15.10. Создание коллекции многократно используемых функций....469
15.11. Автоматическое форматирование кода....470
Глава 16. R Markdown и публикации....472
16.1. Создание нового документа....473
16.2. Добавление заголовка, автора или даты....475
16.3. Форматирование текста документа....477
16.4. Вставка заголовков документов....477
16.5. Вставка списка....478
16.6. Вывод результатов из кода R....479
16.7. Контролируем, какой код и результаты отображаются....481
16.8. Вставка графика....482
16.9. Вставка таблицы....485
16.10. Вставка таблицы данных....486
16.11. Вставка математических уравнений....489
16.12. Генерация вывода HTML....489
16.13. Генерация вывода в формате PDF....491
16.14. Генерация вывода в формате Microsoft Word....493
16.15. Генерация выходных данных презентации....499
16.16. Создание параметризованного отчета....501
16.17. Организация рабочего процесса в R Markdown....504
Об авторах....507
Колофон....507
Предметный указатель....508
От редакции....509
Содержание....6
Выполняйте анализ данных с помощью R быстро и эффективно, используя свыше 275 практических рецептов, представленных в этом расширенном издании. Язык R предоставляет все, что вам нужно для работы со статистикой, но его структуру может быть сложно освоить. Эти ориентированные на задачи рецепты помогут вам сразу же приступить к работе. Решения варьируются от базовых задач до ввода и вывода, общей статистики, графики и линейной регрессии.Каждый рецепт посвящен определенной задаче и включает в себя обсуждение, которое объясняет решение и дает представление о том, как оно работает. Если вы новичок, эта книга поможет вам сориентироваться. Если вы промежуточный пользователь, она расшевелит вашу память и расширит ваши горизонты. Ваша работа будет сделана быстрее, и вы узнаете больше о R в процессе прочтения.