R4marketing | канал Алексея Селезнёва | Язык R
4.45K subscribers
58 photos
11 files
1.17K links
Автор канала Алексей Селезнёв, украинский аналитик, автор ряда курсов по языку R и пакетов расширяющих его возможности.

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

Для связи: @AlexeySeleznev
Реклама: http://bit.ly/39MwJCY
Download Telegram
​​В учебник "Разработка telegram ботов на языке R" добавлена глава "Добавляем боту асинхронность"

Очередное обновление учебника. На этот раз я добавил главу посвящённую асинхронности бота.

Содержание главы:
1. Что такое асинхронное программирование
2. Пример последовательного бота с поддержкой длительных команд
3. Многопоточность в R
4. Используем future для построения асинхронного бота
5. Управление количеством потоков
6. Функция promises::future_promise()
7. Заключение

#курсы_по_R
​​Курс "Разведывательный анализ данных с помощью языка R"

Лекторы:
● Пензар Дмитрий Дмитриевич
● Жарикова Анастасия Александровна
● Валяева Анна Александровна

Курс состоит из 15 лекций и 15 практических занятий, разделенных на 4 логических блока:

● введение в R
● манипуляции с данными табличного типа
● визуализация данных
● статистическая обработка

Список лекций:
1. Введение в базовый R. Работа с векторами.
2. Работа с данными табличного типа.
3. Введение в Tidyverse.
4. Строки и графика
5. Ggplot2 графика.
6. Теория вероятностей. Статистика.
7. Непрерывные случайные величины. Центральная предельная теорема.
8. Tidyverse. Как смотреть на данные.
9. Функции. Функциональное программирование.
10. Работа с табличными данными. Продвинутый dplyr.
11. Теплокарты и другие рисунки.
12. Альтернативы, виды t-тестов и доверительный интервал.
13. Множественное тестирование и корреляция.

Ссылки:
- видео лекции
- материалы
- о курсе

#курсы_по_R
​​В учебник "Разработка telegram ботов на языке R" добавлена глава про упаковку бота в Docker контейнер

Учебник посвящён разработке Telegram ботов, и в данной главе приводится пример по упаковке именно бота. Но, описанным способом можно упаковать в Docker, и запускать абсолютно любой R скрипт.

Содержание главы:
1. Что такое докер
2. Установка Docker
3. Создаём проект в RStudio
4. Код бота
5. Образы и контейнеры
6. Создание Dockerfile
7. Создание образа
8. Запуск контейнера
9. Прокидываем токен бота в контейнер при его запуске
10. Политика перезапуска бота
11. Просмотр списка запущенных контейнеров
12. Остановка контейнера
13. Удаление контейнера
14. Публикация образа в Docker hub
15. Как создать общую папку для хранения файлов
16. Полезные ссылки
17. Заключение

#курсы_по_R
​​Курс от Microsoft "Создание моделей машинного обучения с помощью языка R и tidymodels"

Узнайте, как изучать и анализировать данные с помощью языка R. Познакомьтесь с моделями регрессии, моделями классификации и моделями кластеризации с помощью tidymodels и языка R.

Содержание:
● Общие задачи по изучению и анализу данных.
● Использование ggplot2, dplyr, tidyr и других пакетов языка R для преобразования необработанных данных с целью получить понимание, аналитические сведения и знания.
● Когда следует использовать модели регрессии.
● Как обучать и оценивать модели регрессии с помощью платформы tidymodels.
● Когда следует использовать модели классификации.
● Как обучать и оценивать модели классификации с помощью платформы tidymodels.
● Когда следует использовать модели кластеризации.
● Как обучать и оценивать модели кластеризации с помощью платформы tidymodels.

Предварительные требования:
● Базовые знания в области математики
● Некоторый опыт программирования на языке R

#курсы_по_R
Бесплатный курс "Разработка пакетов на языке R"

Друзья, идея записи курса по разработке пакетов у меня появилась ещё несколько лет назад, но всё никак не доходили руки до реализации, и вот наконец я записал первый урок, и создал проект самого курса.

О курсе
В основе курса будет лежать книга Хедли Викхема "R Packages (2e)", тем не менее курс не будет полным её повторением, некоторые главы из книги я опущу, и кое что наоборот добавлю.

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

Тайм коды первого урока:
00:00 Вступление
00:43 Как создать проект пакета
01:50 Структура проекта пакета
02:47 Добавляем проекту контроль версий
03:14 Как добавить функцию в свой пакет
04:17 Как загрузить текущий пакет (load_all())
05:05 Как запустить проверку пакета (check())
05:56 Файл DESCRIPTION
06:52 Добавляем лицензию пакету
07:08 Добавляем документацию к функциям пакета
09:47 Файл NAMESPACE
10:10 Добавляем юнит тесты для функций пакета
13:34 Как использовать в своём пакете функции из других пакетов
16:46 Обзор всего рабочего процесса
19:03 Заключение

Точных дат публикации следующих уроков нет, буду их записывать и публиковать по мере наличия свободного времени, coming soon.

Приблизительную программу курса постараюсь сформировать и добавить в течении этой недели.

Ссылки:
- сайт курса
- ссылка на первый урок на YouTube

#курсы_по_R
Опубликован 2ой урок курса "Разработка пакетов на языке R": Настройка системы и интеграция RStudio с GitHub

Помимо второго урока на главной странице курса опубликована полная программа курса.

Во втором уроке мы с вами настраиваем среду для разработки пакетов, и настраиваем интеграцию между RStudio и GitHub.

Тайм коды второго урока:
00:00 Вступление
00:50 Настройка дефолтных опций пакета usethis
05:13 Установка утилиты rtools
06:38 Регистрация на GitHub
08:15 Установка Git
09:53 Установка учётных данных в Git
11:27 Создание персонального токена на GitHub
15:04 Проверяем систему на готовность к компиляции пакетов
15:40 Отправка пакета из RStudio на GitHub
17:25 Обзор всего процесса настройки системы для разработки пакетов и интеграции RStudio с GitHub
18:43 Заключение

Ссылки:
1. Сайт курса
2. Видео на YouTube

#курсы_по_R
Опубликован 3 урок курса "Разработка пакетов на языке R": Организация R-кода вашего пакета

——————————
Друзья, так же подписывайтесь на youtube канал, и буду благодарен за репосты информации о курсе в ваших соц. сетях.
——————————

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

Тайм коды:
00:00 Вступление
00:44 Из каких компонентов состоит пакет
01:07 Как организовать функции пакета в файлы
03:55 Про функции library() и source() в коде пакет
05:32 Не изменяйте настройки глобальной среды R: функция on.exit() и пакет withr
14:09 Как задать локальные опции пакета, функция .onLoad()
17:10 Код пакета определённый вне функций
18:20 Заключение

Ссылки:
1. Сайт курса
2. Видео на YouTube

Предыдущие урок:
1. Обзор рабочего процесса
2. Настройка системы и интеграция RStudio с GitHub

#курсы_по_R
Опубликован 4 урок курса по разработке пакетов: Как и зачем добавлять данные в ваш пакет

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

Тайм коды:
00:00 Введение
00:35 Зачем добавлять данные в пакет
02:08 Экспортируемые данные
05:20 Внутренние данные пакета
07:57 Необработанные данные
13:51 Состояние пакета (внутренняя среда пакета)
16:30 Постоянные пользовательские данные
18:30 Прочие каталоги пакета
19:33 Заключение

Ссылки:
1. Сайт курса
2. Видео на YouTube

#курсы_по_R
Уроки по R от ravesli

Самоучитель по R, который в данный момент находится в стадии разработки. На данный момент идёт работа над третьим разделом.

Содержание:

1. Вступление
1.1. Введение в язык программирования R
1.2. Интересные факты о языке программирования R
1.3. Язык R в сравнении с Python
1.4. Как установить RStudio в Windows и Linux?
1.5. Введение в RStudio
1.6. Создание и выполнение R-файла в RStudio
1.7. Комментарии в R
1.8. Переменные и константы в R
1.9. Типы данных в R
1.10. Функции вывода в R
1.11. Числа в R

2. Управление потоком выполнения программы в R
2.1. Операторы сравнения и логические операторы в R
2.2. Условные операторы if…else в R
2.3. Функция ifelse() в R
2.4. Цикл while в R
2.5. Цикл for в R
2.6. Цикл repeat в R
2.7. Операторы break и next в R
2.8. Функции в R

3. Структуры данных в R
3.1. Строки в R
3.2. Векторы в R
3.3. Матрицы в R
3.4. Cписок в R

#курсы_по_R
Опубликовал 5 урок курса "Разработка пакетов на языке R": Метаданные пакета, файл DESCRIPTION

Данный урок посвящён метаданным вашего пакета, и одному из наиболее главных его компонентов - файлу DESCRIPTION,

Тайм коды:
00:00 Вступление
00:39 Назначение и минимальный пример файла DESCRIPTION
01:53 Настройка дефолтных значений полей файла DESCRIPTION с помощью опции usethis.description
03:04 Поля Title и Description
04:09 Поле Authors@R для указания авторства пакета
06:03 Поля URL и BugReports
06:34 Поле License
09:24 Поля Imports и Suggests
12:30 Прочие поля файла DESCRIPTION
14:20 Использование пользовательских полей в файле DESCRIPTION
15:17 Заключение

————————————
В первом анонсе курса, я написал, что точного расписания публикации новых уроков нет, что буду их записывать и публиковать по мере появления времени, тем не менее вот уже 5 вторник подряд у меня получается выпускать новый урок, как минимум две следующие недели будет так же, надеюсь, что и далее каждый новый урок будет публиковаться каждую неделю по вторникам. С такими темпами полный курс будет опубликован в октябре.

Программа
курса по прежнему расширяется и прорабатывается.

Ну и конечно, буду благодарен всем, кто поделится ссылкой на
курс в своих соц сетях.
————————————

Ссылки:
1. Сайт курса
2. Видео на YouTube
3. Поддержать курс

#курсы_по_R
Опубликован 6 урок курса "Разработка пакетов на R" - Управление зависимостями пакета

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

Тайм коды:
00:00 Вступление
00:50 Преимущества и недостатки зависимостей
02:41 Анализ зависимостей пакетов
05:50 Какие компоненты пакета отвечают за его зависимости
07:37 Файл NAMESPACE
08:35 Рабочий процесс установки зависимостей
14:56 Когда стоит импортировать объекты из других пакетов
16:38 Как обращаться к функциям импортированным из других пакетов в коде, тестах и примерах вашего пакета, если поля указаны в поле Imports
18:04 Как обращаться к функциям импортированным из других пакетов в коде вашего пакета, если поля указаны в поле Suggest
21:34 Как обращаться к функциям импортированным из других пакетов в тестах вашего пакета, если поля указаны в поле Suggest
23:10 Как обращаться к функциям импортированным из других пакетов в виньетках и примерах к функциям вашего пакета, если поля указаны в поле Suggest
24:26 Как обращаться к функциям импортированным из других пакетов в коде, тестах и примерах вашего пакета, если поля указаны в поле Depends
26:05 Импорт и экспорт S3 методов
28:30 Заключение

Ссылки:
1. Сайт курса
2. Видео на YouTube
3. Поддержать курс

#курсы_по_R
Опубликован 7 урок курса по разработке пакетов на R: Разработка юнит-тестов к функциям вашего пакета

Вряд ли вы остановитесь на выпуске первой версии вашего пакета, скорее всего со временем вы будете улучшать и расширять его существующий функционал, а значит вносить в старый код изменения. Любые внесённые изменения могут сломать работающий ранее код, что бы избегать таких ситуаций вам и понадобятся юнит тесты, которые будут запускать и проверять работу всех функций вашего пакета, при любых внесённых изменениях.

Тайм коды:
00:00 Вступление
00:54 Неформальный процесс тестирования
03:10 Рабочий процесс тестирования
05:44 Настройка проекта пакета для тестирования
08:34 Как создать файл тестирования для функции
10:36 Как организованы файлы тестирования
15:16 Функции-ожидания, семейство expect_*()
20:07 Запуск тестов
23:41 Snapshot тесты
28:41 Управление Snapshot тестами
31:02 Заключение

Ссылки:
1. Сайт курса
2. Видео на YouTube
3. Поддержать курс можно тут или тут

#курсы_по_R
Опубликован 8 урок курса по разработке пакетов на R - Документирование функций пакет

Этим уроком мы начинаем обширную тему документации вашего пакета. В этом видео мы разберёмся с тем, как добавить документацию к функциям пакета с помощью специальных комментариев и пакета roxygen2.

Тайм коды:
00:00 Вступление
00:43 Какие компоненты пакета отвечают за документацию функций
01:31 Рабочий процесс
04:47 Структура roxygen комментариев
05:34 Особенности разметки roxygen комментариев
07:10 Из каких разделов состоит документация к функциям пакета
09:06 Title, Description и Details
12:07 Документирование аргументов функции
14:55 Возвращаемое функцией значение
16:42 Примеры использования функции
20:12 Повторное использование документации
22:23 Документация уровня пакета
23:50 Заключение

Ссылки:
1. Сайт курса
2. Видео на YouTube

#курсы_по_R
Опубликован 9 урок курса по разработке пакетов на R: Виньетки и прочая опциональная документация пакета

В этом уроке мы разберёмся с опциональной документацией уровня пакета:

* Виньетки - Статьи, подробно описывающие в свободной форме функционал пакета;
* README - Общее описание цели пакета и нескольких простых примеров его использования;
* NEWS - Файл в котором фиксируются все изменения вашего пакета.

Тайм коды:
00:00 Вступление
00:52 Что такое виньетки
01:45 Рабочий процесс создания виньеток
07:29 Метаданные виньетки
08:32 Разметка текста в Rmarkdown
14:24 Как добавить график в виньетку
16:19 Как добавить таблицу в виньетку
23:03 Опции чанков
28:01 Хранение исходников виньеток
28:47 Файл README
33:20 Файл NEWS
37:44 Заключение

Ссылки:
1. Сайт курса
2. Видео на YouTube

#курсы_по_R
Опубликован 10 урок курса по разработке пакетов на R: Разработка сайта пакета (пакет pkgdown)

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

Тайм коды:
00:00 Вступление
01:13 Обзор рабочего процесса
02:41 Настройка пакет для разработки сайта
03:38 Запуск процесса создания сайта
04:09 Обзор разделов сайта пакета
05:21 Публикация сайта на GitHub, и настройка автоматической её пересборки при любом изменении пакета
06:40 Разница между виньеткой и статьёй сайта
07:42 Раздел reference, группировка и сортировка документации к функциям
11:01 Раздел articles, группировка и сортировка списка статей сайта
12:36 Управление навигационной панелью сайта
15:11 Управление боковой панелью сайта
17:50 Изменение темы сайта пакета
19:05 Разработка логотипа пакета
23:01 Как добавить счётчик Google Analytics на сайт пакета
23:51 Заключение

————————————
Не забывайте делиться ссылкой на курс у себя в соц. сетях, пока у него рекордно низкий охват, видео с трудом набирают пару десятков просмотров, а времени на создание курса ушло не мало, буду очень благодарен за репосты.
————————————

Ссылки:
1. Сайт курса
2. Видео на YouTube

#курсы_по_R
Опубликован 11ый урок курса по разработке пакетов на языке R: Публикация пакета в CRAN

За 10 предыдущих уроков мы подробно разобрали каждый этап процесса разработки собственного пакета, и наконец пришло время отправить пакет в основной репозиторий хранения R пакетов - CRAN. В этом уроке мы подробно разберём как подготовить свой пакет к публикации, и отправить его в CRAN.

Тайм коды:
00:00 Вступление
01:03 Настройка непрерывной интеграции для регулярной проверки вашего пакета на разных платформах с помощью GitHub Actions
03:43 Создаём issue со списком действий по подготовке и отправке новой версии пакета на CRAN
05:54 Действия при первой отправке пакета на CRAN
07:43 Проверка полей Title и Description файла DESCRIPTION
08:25 Дополнительные проверки и исправление ошибок
16:54 Отправка пакета на CRAN
21:27 Как проходит проверка вашего пакета на стороне CRAN
22:56 Что делать в случае отказа на публикацию пакета
24:27 Получаем письмо с результатами автопроверки CRAN
24:50 Сообщение о том, что ваш пакет успешно прошел проверку и будет опубликован в CRAN
25:14 Действия, которые необходимо выполнить после публикации пакета в CRAN
28:22 Заключение

Ссылки:
1. Сайт курса
2. Видео на YouTube

#курсы_по_R
Опубликован 12 урок курса по разработке пакетов на языке R: Разработка пакета-обёртки над API

В этом уроке мы разберёмся с тем, что такое API, из каких компонентов состоят HTTP запросы и ответы. И в целом на нескольких примерах разберём функционал пакета httr2, и то, как с его помощью написать пакет-обёртку над API.

Тайм коды:
00:00 Вступление
00:45 Что такое API
01:49 Компоненты HTTP запросов и ответов
03:26 Введение в пакет httr2
08:04 Функции пакета httr2
09:36 Этапы работы с API
10:10 Простейший пример обёртки над Faker API
18:44 Управление конфиденциальными данными
29:33 Пример обёртки над NYTimes Books API
30:51 Обработка ошибок в HTTP ответах
34:06 Ограничение скорости отправки запросов
37:18 Как работать с API токена в пакетах-обёртках над API
39:32 Протокол OAuth
41:00 Пример обёртки над Facebook API
49:46 Обзор всего рабочего процесса
52:11 Заключение

Ссылки:
1. Сайт курса
2. Видео на YouTube

#курсы_по_R
Опубликован 13ый урок курса по разработке пакетов на языке R: Разработка пакета-обёртки над Google API

Этот урок является логическим продолжением темы, начатой в прошлом, но тут мы поговорим о ещё более частном случае, о том, как написать обёртку над любым Google API. Компания Google разработала сотни полезных сервисов, которыми пользуются миллионы людей по всему миру, большинство этих сервисов предоставляют API, и в этом уроке мы разберёмся как обёртывать эти API в пакет. В ходе урока мы разберёмся со специальным пакетом gargle, который очень упрощает разработку пакетов взаимодействующих с Google API.

Тайм коды:
00:00 Вступление
00:55 Создание учётных данных в Google Cloud
08:52 Функционал пакета gargle
09:50 Пример работы с пакетом gargle
17:08 Обзор рабочего процесса создания пакета обёртки над Google API
17:34 Интерфейс авторизации
26:08 Объект отвечающий за состояние авторизации в вашем пакете
27:38 Как обращаться к токену для подписи HTTP запросов
29:54 Заключение

Ссылки:
1. Сайт курса
2. Видео на YouTube

#курсы_по_R
Опубликован 14ый, и завершающий урок курса по разработке пакетов на языке R: Создание мета-пакета

В заключительном уроке курса мы с вами научимся создавать собственные мета пакеты. Мета пакет это не самостоятельный пакет, а просто коллекция объединённых пакетов, одним из наиболее известных мета-пакетов является tidyverse, в ядро которого входят такие пакеты как: dplyr, tidyr, ggplot2, stringr и т.д.

Это самый короткий урок данного курса.

Тайм коды:
00:00 Вступление
01:10 Пример создания мета-пакета с помощью пакета pkgverse
05:47 Аргументы функции pkgverse()
07:12 Заключение

————————————
Сегодня опубликован 14ый, и последний урок курса по разработке пакетов, работа над курсом продлилась ровно 3 месяца, 7 августа был опубликован 1ый урок, и сегодня - 7 ноября, последний.

Надеюсь
курс поможет вам в написании своих собственных пакетов, если вы ранее ещё не имели такой практики, а тем кто уже активно пишет свои пакеты использовать наиболее продвинутые и современные техники в их разработке.

В ближайшие дни опубликую
курс на bookdown, о чём тут отдельно сообщу.
————————————

Ссылки:
1. Сайт курса
2. Видео на YouTube

#курсы_по_R
Курс "Разработка пакетов на языке R" опубликован на bookdown.org

В начале месяца я упоминал о завершении разработки последнего, 14-го урока курса и о планах опубликовать его на bookdown. Итак, рад сообщить, что курс теперь доступен на указанной платформе.

О курсе:
Что касается содержания курса, он был создан под впечатлением от книги Хедли Викхема и Дженни Брайан "R Packages (2e)". Мой опыт в разработке R-пакетов начался в 2016 году, и, как выяснилось, мои первые шаги были далеко не самыми эффективными. Книга Хедли предоставила современный и эффективный подход к разработке пакетов, что я внедрил в этот курс.

Курс объединяет мой семилетний опыт в создании пакетов с тем, что было представлено Викхемом и Брайан в их книге. У этих авторов есть чему поучиться.

Этот курс будет полезен как тем, кто только начинает свой путь в создании пакетов, так и тем, кто уже обладает опытом, поскольку в нем рассматриваются передовые практики в разработке пакетов. Так, что если вы не пробовали ещё себя в разработке пакета, то самое время попробовать.

Хотя некоторые теоретические главы книги были опущены, вместо них были добавлены уроки по созданию пакетов-обёрток над API с использованием httr2 и gargle.

В целом, я считаю, что курс получился полезным, и надеюсь, что вы также оцените его.

Программа курса:
1. Обзор рабочего процесса разработки пакета
2. Настройка системы и интеграция с GitHub
3. Рекомендации по организации R кода
4. Добавление данных в пакет
5. DESCRIPTION - Метаданные пакета
6. NAMESPACE - Зависимости пакета
7. Разработка юнит-тестов к функциям пакета (пакет testthat)
8. Написание документации к функциям пакета
9. Виньетки и прочая опциональная документация пакета
10. Разработка сайта пакета (пакет pkgdown)
11. Публикация в CRAN
12. Разработка пакета обёртки над API (пакет httr2)
13. Разработка пакета обёртки для Google API (пакет gargle)
14. Как создать коллекцию пакетов

Буду признателен за репосты!

Ссылки:
- Курс на bookdown
- Сайт курса
- Плейлист на YouTube
- Благодарности автору

#курсы_по_R