Пакеты и установка библиотек
Учимся расширять возможности R с помощью пакетов — готовых наборов функций.
Пакет — это набор функций, данных и документации, который добавляет в R новые возможности.
Базовый R уже умеет много, но настоящая сила языка — в тысячах пакетов, написанных сообществом. Хотите красивые графики — берёте ggplot2. Удобную работу с таблицами — dplyr. Чтение Excel-файлов — readxl. Всё это бесплатно и устанавливается одной командой.
Подумайте о пакетах как о приложениях для смартфона. Сам телефон умеет звонить и фотографировать, но настоящие возможности раскрываются после установки приложений под ваши задачи. Так же и R: «из коробки» он силён в статистике, а пакеты добавляют ему чтение любых форматов, интерактивные графики, машинное обучение, работу с картами, генерацию отчётов. На момент написания курса в CRAN опубликовано более двадцати тысяч пакетов — практически на любую задачу анализа данных уже есть готовый инструмент. Умение находить и подключать нужный пакет — важная часть продуктивной работы в R.
CRAN — главный склад пакетов
Пакеты хранятся в централизованном репозитории CRAN (Comprehensive R Archive Network). Это проверенное хранилище: прежде чем пакет попадёт туда, его автоматически тестируют. Установка идёт прямо оттуда.
Установить и подключить
Установка пакета — разовое действие, оно скачивает файлы на компьютер:
install.packages("dplyr")А вот подключать пакет нужно в каждой новой сессии — командой library:
library(dplyr)
# теперь функции пакета доступны
result <- filter(data, age > 18)Различие важное: install.packages вы вызываете один раз (пакет «лежит на диске»), а library — каждый раз при запуске скрипта, чтобы «достать» функции в текущую сессию.
| Команда | Когда | Что делает |
install.packages("x") | один раз | скачивает пакет на диск |
library(x) | каждую сессию | подключает пакет в работу |
tidyverse — набор пакетов
Часто вместо отдельных пакетов ставят tidyverse — это «коллекция» из dplyr, ggplot2, readr и других, объединённых единым стилем. Одна установка — и под рукой весь современный инструментарий анализа данных.
install.packages("tidyverse")
library(tidyverse)Как работает под капотом
Когда вы пишете library(dplyr), R загружает функции пакета в специальное пространство имён и «вставляет» его в путь поиска. Теперь, встретив имя filter, R найдёт его в подключённом пакете. Если два пакета определяют функцию с одинаковым именем, побеждает подключённый последним — поэтому иногда появляется предупреждение «маскирует объект» (masked object).
Частые ошибки
- Вызвать
install.packagesв каждом скрипте. Это лишняя загрузка из интернета. Устанавливайте пакет один раз. - Забыть
library. После перезапуска R пакеты не подключены автоматически — безlibraryфункция выдаст ошибку «could not find function». - Перепутать кавычки. В
install.packagesимя пакета — строка в кавычках, а вlibrary— обычно без кавычек.
Итог
- Пакеты расширяют R готовыми функциями.
- Главный репозиторий — CRAN.
install.packages— один раз,library— каждую сессию.tidyverse— набор современных пакетов для анализа данных.