Ich möchte die durchschnittliche Brennstunden (Brennstunden $ Stunden_burned) für den Zeitraum zwischen DS $ date_fixed und ds $ date_broken berechnen. Ich weiß, ich kann dies berechnen, indem Sie den Code unten verwenden:Berechnen Durchschnitt einer Zeit (aus einem anderen Dataset) pro Standort in r
ds$average_burninghours <- sapply (interval(ds$date_fixed, ds$date_broken), function(i)
mean (burning_hours$hours_burned[burning_hours$date%within%i]))
aber ich mag die burning_hours berechnen auf der Lage und Position abhängig. Also, ich möchte eine Art Code hinzufügen, der lke sucht: 'group_by = c (location, position)', aber das schaffe ich nicht. Hat jemand Ideen dazu?
Beispielcode:
ds <- data.frame(date_fixed= c("16-3-2015", "19-3-2015", "21-3-2015"),
date_broken = c("18-3-2015", "22-3-2015", "24-3-2015"),
location = c("A", "B", "B"), position = c("1", "2", "2"))
burning_hours <- data.frame(date = c("16-3-2015", "16-3-2015", "17-3-2015", "17-3-2015",
"18-3-2015", "18-3-2015", "19-3-2015", "19-3-2015", "20-3-2015",
"20-3-2015", "21-3-2015", "21-3-2015", "22-3-2015", "22-3-2015",
"23-3-2015", "23-3-2015", "24-3-2015", "24-3-2015"),
hours_burned= c("10", "11"), location = c("A", "B"),
position = c("1", "2"))
Gewünschtes Ergebnis:
date_fixed date_broken location position avg_burninghours
16-3-2015 18-3-2015 A 1 10
19-3-2015 22-3-2015 B 2 11
21-3-2015 24-3-2015 B 2 11
Wenn ich diesen Code auf den gesamten Datensatz ausführen ich habe, habe ich nur ein Ergebnis für ‚avg_burninghours‘. Es macht keine neue Spalte in df. Hast du eine Idee, woher das kommt? – Mini
Haben Sie den Reinigungscode vor der Zusammenführung und Teilmenge ausgeführt? Können Sie das 'str' des Datasets an dem Punkt teilen, der kurz vor dem Ausführen der Zusammenführungs- und Teilmengenoperation liegt? Falsche Datentypen in Ihren Daten verhindern möglicherweise, dass Sie sie manipulieren. – shreyasgm