Ich habe eine unregelmäßig verteilte XTS
Zeitreihe (mit POSIXct
Werten als Indextyp).
Wie kann ich eine neue Zeitreihe erstellen, die in einem Intervall von beispielsweise 10 Minuten abgetastet wird, wobei jedoch jeder Abtastzeitpunkt auf eine runde Zeit ausgerichtet ist (13:00:00, 13:10:00, 13:20:00, ...)? . Wenn ein Resampling-Moment nicht genau auf einen ursprünglichen Serienwert fällt, möchte ich den vorherigen nehmen.
[r] xts
und durchsuchen Sie die R-Sig-Finance-Archive.Antworten:
Zum Beispiel
alle 20 Minuten zu unterproben. Vielleicht haben Sie auch prüfen wollen
to.minutes
,to.daily
usw.quelle
"seconds", 3601
, aber es funktioniert nichtIch bin mir immer noch nicht sicher, was Sie versuchen, und ich denke immer noch, dass ein Beispiel helfen würde, aber ich dachte, ich würde vermuten, dass Sie daran interessiert sind
align.time
.quelle
index(a1)=index(a1)-60;align.time(a1,60)
)align.time
, die das macht. Unabhängig davon scheint es eine schlechte Idee zu sein, Beobachtungen auf eine Zeit vor ihrem Auftreten abzustimmen.Wenn
a
es sich um ein xts-Objekt mit Einträgen für die zweite Auflösung handelt, werden alle Sekunden gelöscht: index (a) = trunc (index (a), "min")Sie können dies auch verwenden, um die Auflösung auf "Stunden" abzurunden. 10 Minuten werden jedoch nicht unterstützt. Dafür müssen Sie Folgendes tun:
Oder
a=align.time.down(a,600)
wo Sie definiert haben:(Ich habe diese letzte Wahl in meinem eigenen Skript getroffen.)
quelle