Линейная регрессия для каждого вложенного набора данных
Теперь, когда данные по каждой стране разделены на отдельные наборы в столбце data, нужно подобрать линейную модель для каждого из них.
Функция map() из пакета purrr применяет формулу к каждому элементу списка, где . обозначает текущий элемент. Например, можно прибавить единицу к каждому числу в списке:
map(numbers, ~ 1 + .)
Чтобы подобрать модель для каждого набора данных, используйте следующий код:
map(data, ~ lm(percent_yes ~ year, data = .))
здесь . представляет каждый отдельный элемент столбца data из by_year_country. Напомним, что каждый элемент в столбце data — это набор данных, относящийся к конкретной стране.
Это упражнение является частью курса
Практический пример: разведочный анализ данных в R
Инструкции к упражнению
- Загрузите пакеты
tidyrиpurrr. - После вложения данных используйте функцию
map()внутриmutate(), чтобы выполнить линейную регрессию для каждого набора данных (то есть для каждого элемента столбцаdataвby_year_country), моделируяpercent_yesкак функцию отyear. Сохраните результаты в столбецmodel.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Load tidyr and purrr
# Perform a linear regression on each item in the data column
by_year_country %>%
nest(-country)