Lineaire regressie uitvoeren op elke geneste gegevensset
Nu je de data voor elk land hebt opgesplitst in een aparte gegevensset in de kolom data, moet je op elk van deze gegevenssets een lineair model fitten.
De functie map() uit purrr past een formule toe op elk item in een lijst, waarbij . het individuele item voorstelt. Zo kun je bijvoorbeeld 1 optellen bij elk getal in een lijst:
map(numbers, ~ 1 + .)
Dit betekent dat je om op elke gegevensset een model te fitten, het volgende kunt doen:
map(data, ~ lm(percent_yes ~ year, data = .))
waarbij . elk individueel item uit de kolom data in by_year_country voorstelt. Denk eraan dat elk item in de kolom data een gegevensset is die bij een specifiek land hoort.
Deze oefening maakt deel uit van de cursus
Casestudy: Exploratory Data Analysis in R
Oefeninstructies
- Laad de pakketten
tidyrenpurrr. - Gebruik na het nesten de functie
map()binnen eenmutate()om op elke gegevensset (dus elk item in de kolomdatainby_year_country) een lineaire regressie uit te voeren, waarbij jepercent_yesmodelleert als functie vanyear. Sla de resultaten op in de kolommodel.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Load tidyr and purrr
# Perform a linear regression on each item in the data column
by_year_country %>%
nest(-country)