Intro

О задачнике

Этот набор задач сложился во время моего (Филипп Управителев) курса по анализу данных на факультете социальных наук НИУ ВШЭ. Студентам надо было придумывать домашние задания для закрепления материала и более наглядной иллюстрации некоторых концепций. По этой причине основные темы задачника частично соответствуют курсу. Со временем пул тем и задач расширяется, однако в любом случае я стремлюсь сохранять фокус на base R, концепциях языка и основных инструментах. В перспективе хочется покрыть задачами основные разделы учебника и только потом -- отдельные пакеты.

Лицензия

Это произведение доступно по лицензии CC BY-NC-ND 4.0.

R intro

Задачник является частью проекта R Intro, который также включает в себя введение в язык R, конспекты по конкретным пакетам, записи вебинаров и прочие материалы. Обновление материалов проекта ведётся по принципу пакетов, то есть с некоторой эпизодичностью и журналом изменений.

Контакты

Если у вас есть предложения по темам задачника или же вы можете поделиться своими задачами и примерами -- пришлите их, пожалуйста, в Issues. Так же вы можете написать мне (@konhis, Philipp Upravitelev) в telegram или в ODS.

Поддержать проект

Если вам понравились материалы или идея проекта R Intro и его разделов, вы можете купить мне чашечку кофе или порадовать ежемесячной подпиской. Для тех, кто не в России, так же есть ko-fi.

Разделы

  • Операторы: Операторы. Операции сложения, вычитания, степени. Присвоение. Логические операторы.

  • Векторы: Создание векторов (с(), sample(), seq())

  • Манипуляции с векторами: Векторизованные операции. Сравнение значений, объединение результатов сравнения. Извлечение значений по индексу и по условию. Модификация элементов.

  • Работа со строками: Конкатенация строк. Разделение строк. Количество символов в строке. Смена регистра. Регулярные выражения. Замена символов и групп символов. Работа с группами.

  • Другие объекты: Создание списков. Навигация по структуре. Извлечение и модификация вложенных элементов. Уровни фактора. Сортировка, конверсия уровней в числа. NA, NULL, NaN. Проверка на наличие и удаление пропусков.

  • Дата и время: unix-таймстамп. Формат дат и выделение частей дат. Сложение и вычитание с датами. Некоторые полезные функции пакета lubridate

  • Таблицы: Форматы data.table и tibble. Создание таблиц. Фильтрация строк по значению и по условию. Изменение значений в ячейке. Добавление и удаление колонок. Склейка двух таблиц по строкам и по колонкам. Мердж таблиц. Решейп таблиц. Агрегации.

  • Статистические вычисления: Среднее, медиана, ст.отклонение. Процентили. Генерация выборки из ген.совокупности, вероятность события. Работа с объектом вывода стат.функции (lm(), t.test()).

  • Основы программирования: Ветвления if...else, ifelse(), switch(). Создание функций. Аргументы по умолчанию. Несколько объектов в результате функции. Цикл for. Функции семества *pply и анонимные функции.

  • Визуализация: Статичная визуализация. Пакет ggplot2: Основные геомы (бар, линия). Группировка по цвету. Изменение параметров геомов. Комбинация слоев. Легенды. Темы. Фасеты. Интерактивная визуализация. Пакет plotly: Основные геомы (бар, линия). Группировка по цвету. Изменение параметров графиков. Комбинация слоев. Легенды. Ховеры.

  • Web-скрапинг: Навигация по XPath. Скрапинг данных с сайта CRAN

  • API: URL-энкодер/декодер. POST-запрос. Обработка ответа.