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.