Семинар 5: введение в tidyverse и регулярные выражения

Все операции, связанные с обработкой данных (добавление столбцов, фильтрация строк и прочее), должны выполняться средствами библиотеки tidyverse.

Задание 0

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

Задание 1

Добавьте в датафрейм столбец Side со значениями Good и Bad, считая, что:

  • Good присваивается герою в случае, если в Loyalty у него есть слово “Order” или “Hogwarts”;
  • Bad — иначе.

Задание 2

Используя критерий хи-квадрат, проверьте, правда ли есть связь между факультетом, на котором учился герой и тем, на чьей стороне он был (столбцы House и Loyalty соответственно).

Задание 3

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

Подсказка: необходимо извлечь числа из столбца Wand (там, где они есть).

Задание 4

Добавьте в датафрейм числовой столбец Birth.year, который содержит год рождения героя.

Подсказка: необходимо извлечь числа из столбца Birth (там, где они есть).

Задание 5

Добавьте в датафрейм числовой столбец End.year, который содержит следующие значения:

  • год из столбца Death, если герой умер (если соответствующая дата заполнена);
  • значение 2019, если герой не умирал.

Подсказка: можно сначала извлечь годы из столбца Death, а потом на месте пропущенных значений (случаи, где годы не нашлись) поставить 2019. Для заполнения пропусков с помощью tidyverse посмотрите на документацию к функции replace_na().

Задание 6

Добавьте в датафрейм числовой столбец Age, который содержит возраст героев (для простоты считаем, что возраст героев определяется как разность между годом в End.year и Birth.year).

Задание 7

Выведите на экран в отдельной вкладке строки, которые соответствуют героям старше 100 лет, упорядочив их от самого младшего до самого старшего.

Задание 8

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

Подсказка: вертикальную линию можно добавить с помощью функции abline().