Wie kann ich dieses Statistikproblem in R lösen?
Ich muss eine Hausarbeit mit R schreiben und habe folgendes Problem dass ich nicht lösen kann (erste Statistikhausarbeit).
Ich habe einen Datensatz aller Länder in allen Jahren ab 1950 (also eine Reihe (Beobachtung) ist ein Land in einem Jahr, die nächste Reihe ist dasselbe Land ein Jahr später). Jetzt muss ich eine Variable konstruieren, in der für jede Reihe der Durchschnittswert einer bestimmten vorhandenen Variable der letzten drei Jahre ausgegeben wird.
Speziell geht es um die Demokratisierung eines Landes. Ich habe also eine Variable, welche das Demokratieniveau eines Landes angibt und brauche jetzt eine neue Variable, die für jedes Jahr T, das "Demokratiewachstum" der vorangegangenen drei Jahre, also T(-3,0).
Wie kann ich diese neue Variable erstellen ?
1 Antwort
Zunächst solltest du sicherstellen, dass dein Datensatz nach Land und Jahr sortiert ist. Dann kannst du die Funktion "rollapply" aus der "zoo"-Bibliothek verwenden, um den Durchschnittswert der vorangegangenen drei Jahre zu berechnen.
# Lade die "zoo"-Bibliothek
library(zoo)
# Erstelle ein Beispiel-Datensatz
data <- data.frame(Land = c("A", "A", "A", "A", "B", "B", "B", "B"),
Jahr = c(1950, 1951, 1952, 1953, 1950, 1951, 1952, 1953),
Demokratieniveau = c(3, 5, 7, 9, 2, 4, 6, 8))
# Sortiere den Datensatz nach Land und Jahr
data <- data[order(data$Land, data$Jahr),]
# Definiere eine Funktion, die den Durchschnittswert einer Variable der letzten drei Jahre berechnet
roll_mean <- function(x) mean(tail(x, 3))
# Wende die Funktion auf die Variable "Demokratieniveau" an und erstelle eine neue Variable "Demokratiewachstum"
data$Demokratiewachstum <- rollapply(data$Demokratieniveau, width = 3, FUN = roll_mean, fill = NA)
# Gib den Datensatz aus
data
Dieser Code verwendet die Funktion "rollapply" aus der "zoo"-Bibliothek, um den Durchschnittswert der vorangegangenen drei Jahre der Variable "Demokratieniveau" zu berechnen. Das Ergebnis wird in der neuen Variable "Demokratiewachstum" gespeichert. Beachte, dass die "tail"-Funktion die letzten drei Werte aus der Variable "x" auswählt, um den Durchschnittswert zu berechnen. Die "fill"-Option gibt an, dass fehlende Werte in den ersten beiden Jahren durch NA (not available) ersetzt werden.