wie ich mein Problem mit PHP/MySQL oder Excel aufgrund der Datengröße nicht lösen konnte, versuche ich, meine ersten Schritte mit R jetzt und ein wenig zu kämpfen. Das Problem ist folgendes: Ich habe einen zweiten Neben zweite CSV-Datei mit einem halben Jahr von Daten, sieht das wie folgt aus:R: Find fehlende Zeitstempel in csv
metering,timestamp
123,2016-01-01 00:00:00
345,2016-01-01 00:00:01
243,2016-01-01 00:00:02
101,2016-01-01 00:00:04
134,2016-01-01 00:00:06
Wie Sie sehen, gibt es einige Sekunden jeder einmal in eine Weile fehlen (Frag mich nicht, warum die Werte vor dem Zeitstempel geschrieben sind, aber so habe ich die Daten erhalten ...). Jetzt versuche ich die Anzahl der fehlenden Werte (= Sekunden) zu berechnen.
So war meine Idee
- einen Vektor zu erstellen, die korrekt ist (beinhaltet alle sec-by-sec-Zeitstempel),
- erfüllen die CSV mit diesem neuen Vektor-Datei, und
- Summe up alle Zeitstempel ohne Wert.
konnte ich Schritt 1 passieren mit dem folgenden Code machen:
RegularTimeSeries <- seq(as.POSIXct("2016-01-01 00:00:00", tz = "UTC"), as.POSIXct("2016-01-01 00:00:30", tz = "UTC"), by = "1 sec")
write.csv(RegularTimeSeries, file = "RegularTimeSeries.csv")
eine Idee zu haben, was ich tat ich auch den Vektor in eine CSV exportiert, die wie folgt aussieht:
"1",2016-01-01 00:00:00
"2",2016-01-01 00:00:01
"3",2016-01-01 00:00:02
"4",2016-01-01 00:00:03
"5",2016-01-01 00:00:04
"6",2016-01-01 00:00:05
"7",2016-01-01 00:00:06
Leider habe ich keine Ahnung, wie ich mit Schritt 2 und 3 weitermachen soll. Ich habe einige sehr ähnliche Beispiele gefunden (http://www.r-bloggers.com/fix-missing-dates-with-r/, R: Insert rows for missing dates/times), aber als gesamter R noob hatte ich Mühe, diese Beispiele in meine angegebenen Daten zu übertragen .
Einige Hinweise für den Neuling sehr sehr hilfreich wäre - vielen Dank im Voraus :)
Nun, ich würde sagen, dass, anstatt Ihre Meth od, subtrahiere einfach den Zeitstempel mit dem Wert davor. Wenn es größer als 1 ist, geben Sie den Wert aus. Sonst lass es. Wird den Code in einiger Zeit teilen. –
Vielen Dank! Ja, das Subtrahieren der "sollte" Sekunden durch die Datenzeilen, die ich habe, ist die offensichtlichste Lösung (so offensichtlich, dass ich diese Idee nicht hatte, um ehrlich zu sein). Aber ich hatte ohnehin eine weitere Analyse in meinem Kopf, wie zum Beispiel herauszufinden, wo die längsten Datenausfälle auftraten, wie lange sie dort waren und so weiter. Dazu brauche ich sowieso einen Datensatz mit "NA" -Werten. Aber für die ersten Schritte ist Ihre Lösung natürlich so genial wie einfach :) – Bene
Ich habe meinen Code unten als Antwort gegeben, Bene. Überprüfen Sie und lassen Sie mich wissen, wenn es hilft –