Lineare Regression auf jedem verschachtelten Datensatz durchführen
Nachdem du die Daten für jedes Land in der Spalte data in getrennte Datensätze aufgeteilt hast, musst du für jeden dieser Datensätze ein lineares Modell anpassen.
Die Funktion map() aus purrr wendet eine Formel auf jedes Element einer Liste an, wobei . das einzelne Element darstellt. Du könntest zum Beispiel zu jeder Zahl in einer Liste eins addieren:
map(numbers, ~ 1 + .)
Das bedeutet, um ein Modell auf jeden Datensatz anzupassen, kannst du Folgendes tun:
map(data, ~ lm(percent_yes ~ year, data = .))
Dabei steht . für jedes einzelne Element der Spalte data in by_year_country. Denk daran: Jedes Element in der Spalte data ist ein Datensatz, der sich auf ein bestimmtes Land bezieht.
Diese Übung ist Teil des Kurses
Fallstudie: Explorative Datenanalyse in R
Anleitung zur Übung
- Lade die Pakete
tidyrundpurrr. - Verwende nach dem Verschachteln die Funktion
map()innerhalb vonmutate(), um auf jedem Datensatz (d. h. jedem Element der Spaltedatainby_year_country) eine lineare Regression durchzuführen, wobeipercent_yesals Funktion vonyearmodelliert wird. Speichere die Ergebnisse in der Spaltemodel.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Load tidyr and purrr
# Perform a linear regression on each item in the data column
by_year_country %>%
nest(-country)