Habe einen Datenrahmen
Date Team Opponent Weather Outcome
2017-05-01 All Stars B Stars Rainy 1
2017-05-02 All Stars V Stars Rainy 1
2017-05-03 All Stars M Trade Sunny 0
.
.
2017-05-11 All Stars Vdronee Sunny 0
Wobei Ergebnis 1 einen Gewinn anzeigt. Ich habe die Tabellenfunktion verwendet, um die Häufigkeit und den angewendeten Zustand zu ermitteln.
table(df$Outcome, df$Team == "All Stars")
Gibt mir das zurück
FALSE TRUE
0 1005 30
1 1323 57
Die Häufigkeit des Gewinns beträgt also 57/87 = 0,655
Zwei Fragen:
Wie binde ich die Gewinnhäufigkeit direkt in eine Formel ein, anstatt sie manuell zu berechnen?
und
Wie filtere ich anhand der letzten x Beobachtungen? d.h. so etwas wie
table(df$Outcome, df$Team == "All Stars" & df$date = filtering for the 5 most recent observations)
Vielen Dank
Antworten:
0 für die Antwort № 1Eine Option ist zu verwenden data.table
libray(data.table)
dt <- data.table(df)
dt[, .(prop=sum(outcome)/.N),Team]
Um die 5 neuesten Beobachtungen zu erhalten, können Sie Folgendes tun:
dt[,head(.SD,5),by=.(Team,Date)][,.(prop=sum(outcoume/.N),Team]