Ich habe einen Datensatz, wie folgt aussieht:Datum Roll-up in R
ID FromDate ToDate SiteID Cost
1 8/12/2014 8/31/2014 12 245.98
1 9/1/2014 9/7/2014 12 269.35
1 10/10/2014 10/17/2014 12 209.98
1 11/22/2014 11/30/2014 12 309.12
1 12/1/2014 12/11/2014 12 202.14
2 8/16/2014 8/21/2014 12 109.35
2 8/22/2014 8/24/2014 14 44.12
2 9/25/2014 9/29/2014 12 98.75
3 9/15/2014 9/30/2014 23 536.27
3 10/1/2014 10/31/2014 12 529.87
3 11/1/2014 11/30/2014 12 969.55
3 12/1/2014 12/12/2014 12 607.35
Was ich würde das so aussehen mag, ist:
ID FromDate ToDate SiteID Cost
1 8/12/2014 9/7/2014 12 515.33
1 10/10/2014 10/17/2014 12 209.98
1 11/22/2014 12/11/2014 12 511.26
2 8/16/2014 8/21/2014 12 109.35
2 8/22/2014 8/24/2014 14 44.12
2 9/25/2014 9/29/2014 12 98.75
3 9/15/2014 9/30/2014 23 536.27
3 10/1/2014 12/12/2014 12 2106.77
Wie kann man die Daten sehen, werden aufgerollt, wenn es eine Fortsetzung gibt und die Kosten durch ID und SiteID summiert werden. Um jemandem zu helfen, die Komplexität zu verstehen, wenn es eine Fortsetzung des Datumsintervalls gibt, sich aber die SiteID ändert, handelt es sich um eine separate Zeile. Wenn das Datumsintervall nicht fortgeführt wird, handelt es sich um eine separate Zeile. Wie mache ich das in R? Außerdem habe ich über 100.000 individuelle IDs. Was ist der effizienteste Weg/Paket dafür?
Ich mag diesen Ansatz viel besser - wie wäre es mit der Vereinfachung zu: 'df%>% mutieren (crit = FromDate-lag (ToDate, Standard = 1) == 1, gr = cumsum (crit == FALSCH))% >% group_by (gr, ID, SiteID)%>% summarize (Kosten = sum (Kosten), Fromdate = min (Fromdate), ToDate = max (ToDate)) ' – JasonAizkalns
Warum fallen dieser Code die„ID " Säule? – akash87
@JasonAizkalns Danke. Das ist eindeutig besser. – Khashaa