Семинар 3. Таблицы и dplyr

Часть 1

На этом семинаре мы будем работать с файлом, содержащим информацию о годах постройки жилых домов в Москве. Данные достаточно новые, а для вдохновения посмотрите, что можно получить, используя эту информацию.

Мы, правда, займемся пока вещами попроще.

  1. Загрузите файл moscow-buildings.csv и сохраните ее как df_build. Посмотрите на датафрейм.
  2. Используя функции dplyr, удалите из базы данных строки, в которых значения года построки не указаны (“н.д.”), а после превратите столбец house_age в числовой. R будет воспринимать столбец как факторный, поэтому нужно сначала превратить его в текстовый, а затем - в числовой или использовать специальную функцию level().
  3. Посмотрите на минимальное и максимальное значения года постройки. Разумны ли они? Если нет, уберите из базы данных «странные» значения годы постройки.
  4. Выберите из базы данных строки, соответствующие Басманному району и сохраните их в базу basm_data.
  5. Сгруппируйте данные в базе по районам и посмотрите, сколько домов в базе относятся к каждому району.
  6. Найдите средний возраст дома (возраст - в годах, считаем от 2018) по каждому району.

    Подсказка: сначала добавьте переменную house_age («возраст дома»).
  7. Найдите улицу с самым старым домом.

Часть 2

Сейчас вам предлагается поработать с файлом CPDS.csv, который содержит показатели из Comparative Political Data Set. Познакомиться с проектом и codebook для таблицы можно здесь.

  1. Загрузить файл CPDS.csv, учитывая, что десятичный разделитель - запятая. Сделать так, чтобы текстовые столбцы считывались как текст, а не как факторы. Подсказка: аргумент stringsAsFactors = FALSE в функции read.csv().

  2. Создать столбец log_pop с логарифмированными значения численности населения.

  3. Выбрать столбцы country, year, poco, eu, gov_right1, gov_cent1, gov_left1, log_pop и сохранить их как small.

  4. Сколько наблюдений в датафрейме соответствуют пост-коммунистическим и не пост-коммунистическим странам?

  5. Сколько пост-коммунистических и не пост-коммунистических стран в датафрейме? Подсказка: используйте функцию n_distinct для подсчёта уникальных значений в столбце.