Ich arbeite an einem rollierenden Durchschnitt einer Spalte, indem ich eine andere Spalte gruppiere. Die Gruppen sind "Spielername", der gleitende Durchschnitt ist "FDP". Hier ist die Testdaten Ich verwende:R-Programmierung - Rollender Durchschnitt mit Gruppierung
PlayerName <- c("Player1", "Player1", "Player1", "Player1", "Player2", "Player2", "Player2", "Player3", "Player3", "Player3", "Player3", "Player3", "Player3")
Date <- c("2016-11-02", "2016-11-04", "2016-11-07", "2016-11-10", "2016-11-03", "2016-11-04", "2016-11-11", "2016-11-02", "2016-11-04", "2016-11-07", "2016-11-10", "2016-11-13", "2016-11-17")
FDP <- c(13, 12, 8, 20, 10, 11, 12, 35, 46, 24, 33, 40, 40)
DT <- data.table(PlayerName, Date, FDP)
ich eine vierte Spalte „RollAvg“ hinzufügen mag, dass der 3 Datum gleitende Durchschnitt ist. Das Ergebnis wäre in etwa so aussehen:
PlayerName Date FDP RollAvg
1: Player1 2016-11-02 13 NA
2: Player1 2016-11-04 12 NA
3: Player1 2016-11-07 8 11
4: Player1 2016-11-10 20 13.3
5: Player2 2016-11-03 10 NA
6: Player2 2016-11-04 11 NA
7: Player2 2016-11-11 12 11
8: Player3 2016-11-02 35 NA
9: Player3 2016-11-04 46 NA
10: Player3 2016-11-07 24 35
11: Player3 2016-11-10 33 34.3
12: Player3 2016-11-13 40 32.3
13: Player3 2016-11-17 40 37.6
Es spielt für mich keine Rolle, ob die RollAvg Spalte NA hat oder wenn sie weggelassen werden.
Ich habe eine Reihe von verschiedenen Möglichkeiten versucht, dies zu tun, und ich kann nichts zur Arbeit bekommen. Ich weiß, dass es andere ähnliche Beiträge gibt, aber ich konnte die Strukturen dessen, was sie taten, nicht verstehen. Ich habe das Gefühl, dass es einen einfachen Ein-Linien-Weg gibt, um dies mit Sapply und Rollmean zu machen, aber ich kann es nicht herausfinden.
Danke für die Hilfe!
Zuvor beantwortet [Diese so Post] (http://stackoverflow.com/questions/33787526/grouped-rolling-average-by-date) – G5W
Ich versuchte, das zu verwenden, und ich konnte es nicht zum Funktionieren bringen. Ich bin ein Neuling, also war es vielleicht gerade hinter mir. Danke für die Hilfe. – runnin4tay5000