/ / Frequenzzählung mit mehreren Bedingungen R - r, Zählung, Datentabelle, Frequenz

Frequenzzählung mit mehreren Bedingungen R - r, Zählung, Datentabelle, Frequenz

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 № 1

Eine 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]