Wie kann ich dieses Statistikproblem in R lösen?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

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.