Ich habe die folgende Funktion in R geschrieben, um die zweitägigen mittleren VARs für jedes Datum und jeden vorherigen Tag für einen Datenrahmen mit den Spaltennamen DATE (YYYY-MM-DD), ID, VAR1 und VAR2. Es gibt keine fehlenden Daten.Durchschnittliche Zeile und ihre vorherige Zeile in einem dat.frame
df <- data.frame
TWODAY <- function(df){
df$TWODAY_VAR1 <- NA
for(j in 2:length(df$VAR1)){
df$TWODAY_VAR1[j] <- mean(df$VAR1[j:(j-1)])
}
df$TWODAY_VAR2 <- NA
for(j in 2:length(df$VAR2)){
df$TWODAY_VAR2[j] <- mean(df$VAR2[j:(j-1)])
}
return(df)
}
Ich bewerben ich dann diese Funktion meines Datenrahmen mit ddply:
df <- ddply(df, "ID", TWODAY)
jedoch mein Datenrahmen besteht aus mehr als 13 Millionen Beobachtungen, und dies sehr langsam läuft. Hat jemand irgendwelche Empfehlungen, wie ich meinen Code bearbeiten könnte, um ihn effizienter zu machen?
Jeder Rat würde sehr geschätzt werden!
ich denke, der geeignete Ort für diese Frage ist [Code Review Stapel Tausch] (https://codereview.stackexchange.com/). – andrewnagyeb
sollten Sie ein reproduzierbares Beispiel geben https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-beispiel – minem