Ich habe folgende Datenrahmen und diese Frage bezieht sich auf [diesen Thread]Wie berechnet man die durchschnittliche Zeit für aggregierte Daten für verschiedene Gruppen?
df = data.frame(c("2012","2012","2012","2013"),
c("AAA","BBB","AAA","AAA"),
c("X","Not-serviced","X","Y"),
c("2","10","3","2.5"))
colnames(df) = c("year","type","service_type","waiting_time")
Ich durchschnittliche Wartezeiten für Service und nonserviced Gruppen erhalten möchten. Dies ist, wie die Daten gruppiert sind:
library(data.table)
setDT(df)[, .(num_serviced = sum(service_type != "Not-serviced"),
num_notserviced = sum(service_type =="Not_serviced"),
avg_wt = mean(waiting_time)), ## THE PROBLEM HERE!!!
.(year, type)][, Total := num_serviced + num_notserviced][]
jedoch avg_wt = mean(waiting_time))
durchschnittliche Wartezeit über insgesamt geschätzt. Ich würde eher avg_wt_serviced
und avg_wt_notserviced
benötigen.
muss das Ergebnis sein:
year type num_serviced num_notserviced num_total avg_wt_serviced avg_wt_notserviced
2012 AAA 2 0 2 2.5 0
@RonakShah: Sie haben absolut Recht. Danke fürs bemerken. 10 bezieht sich auf 2012 und BBB. Im Falle von 2012 und AAA ist es 0. – FiofanS