Mam nieregularnie rozmieszczone XTS
szeregi czasowe (z POSIXct
wartościami typu indeksu).
Jak mogę zbudować nową serię czasową próbkowaną z, powiedzmy, 10-minutowym interwałem, ale z każdym momentem próbki dopasowanym do rundy (13:00:00, 13:10:00, 13:20:00, ...) . Jeśli moment ponownego próbkowania nie spadnie dokładnie na oryginalną wartość serii, chcę wziąć poprzednią.
[r] xts
i przeglądaj archiwa r-sig-finance.Odpowiedzi:
Na przykład
do podpróbkowania co 20 minut. Warto również sprawdzić
to.minutes
,to.daily
itdźródło
"seconds", 3601
, ale to nie działaNadal nie jestem pewien, co próbujesz zrobić, i nadal uważam, że przykład by pomógł, ale pomyślałem, że możesz być zainteresowany
align.time
.źródło
index(a1)=index(a1)-60;align.time(a1,60)
)align.time
, która to robi. Niezależnie od tego, wydaje się, że złym pomysłem jest zrównanie obserwacji z czasem poprzedzającym ich wystąpienie.Jeśli
a
jest obiektem xts z wpisami do drugiej rozdzielczości, powoduje to wyłączenie wszystkich sekund: index (a) = trunc (index (a), "mins")Możesz także użyć tego do zaokrąglenia w dół do rozdzielczości „godzin”. Ale 10 minut nie jest obsługiwane. W tym celu musisz to zrobić:
Lub
a=align.time.down(a,600)
gdzie zdefiniowałeś:(wybrałem ten ostatni wybór w moim własnym skrypcie).
źródło