Ich habe einen data.table wie dieseberechnen Mittelwert akkumulierte mit Bedingung
a <- data.table(
A = c(1:6),
B = c(1,2,2,3,4,2),
C = c("t","t","f","t","f","t")
)
A B C
1: 1 1 t
2: 2 2 t
3: 3 2 f
4: 4 3 t
5: 5 4 f
6: 6 2 t
In jeder Reihe, ich möchte den Mittelwert aller vorherigen Zeilen berechnen, aber mit der Bedingung, dass sie die Zeile mit C == f
ausschließen . Das Ergebnis sollte
A B C D E
1: 1 1 t NA NA
2: 2 2 t 1 1
3: 3 2 f 1.5 1.5
4: 4 3 t 1.5 1.5
5: 5 4 f 3.5 3
6: 6 2 t 3.5 3
sein Wie kann ich das tun?
Also was ist dein erwartetes Ergebnis? – Sotos
@Jimbou es ist eine data.table –
Ihre erwartete Ausgabe macht keinen Sinn. Bitte fügen Sie die Formeln hinzu, die Sie verwendet haben. Warum für Zeilen 5: 6 sind die Werte 3,5 und 3? Es sollte 2.333 und 2 nach Ihrer Beschreibung –