Schnellste Weg zum ausfüllen von fehlenden Daten für die Daten.Tabelle
Ich bin laden ein data.table
aus CSV-Datei, die Datum, Bestellungen, Menge etc. Felder.
In der input-Datei gelegentlich keine Daten für alle Termine. Zum Beispiel, wie unten gezeigt:
> NADayWiseOrders
date orders amount guests
1: 2013-01-01 50 2272.55 149
2: 2013-01-02 3 64.04 4
3: 2013-01-04 1 18.81 0
4: 2013-01-05 2 77.62 0
5: 2013-01-07 2 35.82 2
In der obigen 03-Jan 06-Jan haben keine Einträge.
Möchten, füllen Sie die fehlenden Einträge mit default-Werten (z.B. null für Bestellungen, Menge etc.), oder tragen Sie den letzten vaue vorn (. e.g, 03-Jan wird die Wiederverwendung 02-Jan-Werten und 06-Jan wird die Wiederverwendung der 05-Jan-Werte usw..)
Was ist die beste/optimale Art und Weise zu füllen solche Lücken, fehlende Daten Daten mit solchen default-Werte?
Die Antwort hier schlägt mit allow.cartesian = TRUE
, und expand.grid
für die fehlenden Wochentage - es kann funktionieren, für Wochentage (da Sie nur 7 Wochentage) - aber nicht sicher, ob das der richtige Weg wäre, zu gehen zu Terminen, vor allem, wenn wir es mit multi-Jahres-Daten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht sicher, ob es das Schnellste, aber es wird funktionieren, wenn es keine
NA
s in die Daten:dt$orders[is.na(dt$orders)] <- 0
Ersatz auf jedem Feld.Den idiomatischen
data.table
Weg (mit Rollen verbindet) ist diese:roll=0
, dannNADayWiseOrders[is.na(orders), orders:=0]
seq
von min zu max Datum innerhalb von Gruppen zu tun, die rolling join innerhalb der Gruppen als auch?Hier ist, wie Sie in die Lücken zu füllen innerhalb der Untergruppe