beim Erstellen eines xts
Objekt von einem data.frame
Ich scheine einige Daten zu verlieren (ca. 3000 Daten verloren über 33 000).R: Erstellen XTS Änderungen Datensatz, Verlust von Daten
My-Datensatz ist wie folgt: (mit der Zeit, Tag-Monat-Jahr sein, EU-Format)
> head(mesdonnees)
time value
1 05-03-2006 04:07 NA
2 05-03-2006 04:17 NA
3 05-03-2006 04:27 NA
4 05-03-2006 04:37 NA
5 05-03-2006 04:47 NA
6 05-03-2006 04:57 NA
Aufgrund des Formats ich die verschiedenen Teile des Datums zu extrahieren hatte (zumindest ich couldn 't erhalten as.POSIXct
, um mit diesem Format zu arbeiten). Hier ist, wie ich es tat:
# Extract characters and define as S....
Syear <- substr(mesdonnees$time, 7,10)
Smonth <- substr(mesdonnees$time, 4,5)
Sday <- substr(mesdonnees$time, 1, 2)
#Gather all parts and use "-" as sep
datetext <- paste(Syear, Smonth, Sday, sep="-")
#define format of each part of the string
formatdate<-as.POSIXct(datetext, format="%Y-%m-%d", tz = "GMT")
ich dann versuche, meine erstellen xts
mit ...
xtsdata <- xts(mesdonnees$value, order.by = formatdate, tz = "GMT")
... aber wenn dies zu tun bekomme ich ein paar ziemlich seltsame Ergebnisse: Der erste Wert ist in 1900
> head(xtsdata)
[,1]
1900-01-04 NA
2006-03-05 NA
2006-03-05 NA
2006-03-05 NA
2006-03-05 NA
2006-03-05 NA
und viele (3000) Termine nicht eingehalten:
> xtsdata[30225:30233,]
[,1]
2006-12-31 0
2006-12-31 0
2006-12-31 0
2006-12-31 0
<NA> NA
<NA> NA
<NA> NA
<NA> NA
<NA> NA
Bei der Betrachtung, was die gleiche Linie sein sollte, in meine beiden data.frame
und meine xts
ich sehen kann, dass die Linien versetzt sind (ich das Datumsformat in der xts
Objekterstellung geändert hatte):
> mesdonnees[25617,]
time value
25617 08-11-2006 23:51 0
> xtsdata[25617,]
[,1]
2006-11-25 0.27
Wie ist dass meine Daten verrechnet werden? Ich habe versucht, die tz
zu ändern, aber es betrifft es nicht. Ich entfernte alle Duplikate mit der dyplr package
, es hat auch keine Auswirkungen auf die XTS-Ergebnisse. Danke für Ihre Hilfe !
Nach meinem xts
Code auf den von Joshua schlug einen Wechsel:
xtsdata <- xts(mesdonnees$value, order.by = as.POSIXct(mesdonnees$time, tz = "GMT", format = "%d-%m-%Y %H:%M"))
... meine Daten zeigen, richtig für den „letzten“ Teil, aber ich habe jetzt ein anderes Problem. Die ersten 2300 Daten zeigen die folgenden Ergebnisse, wenn dabei (mit xtsdata[1500,]
(oder jede Zeile < 2300) zeigt die gleichen Ergebnisse)
> view(xtsdata):
0206-06-30 23:08:00 NA
0206-06-30 23:18:00 NA
0206-06-30 23:28:00 NA
1900-01-04 12:00:00 NA
2006-03-05 04:07:00 NA
2006-03-05 04:17:00 NA
ich diesen Fehler bemerkt vor und dachte, dass es auf das Datumsformat zurückzuführen war; vielleicht ist es nicht? Auch wenn bei den xtsdata
Suche Ich habe nicht die gleichen Ergebnisse für die gleiche Zeile (die letzten Zeilen sind richtig Gedanken):
> mesdonnees[2360,]
time value
2360 23-03-2006 03:09 NA
> xtsdata[2360,]
[,1]
2006-03-05 09:07:00 NA
Wie gewünscht:
> str(mesdonnees)
'data.frame': 32556 obs. of 2 variables:
$ time : chr "05-03-2006 04:07" "05-03-2006 04:17" "05-03-2006 04:27" "05-03-2006 04:37" ...
$ value: num NA NA NA NA NA NA NA NA NA NA ...
Und wenn nötig:
Bitte bearbeiten Sie die Ausgabe von 'str (mesdonnees)' in Ihre Frage. –