Tengo una XTS
serie temporal irregularmente espaciada (con POSIXct
valores como tipo de índice).
¿Cómo puedo construir una nueva serie de tiempo muestreada en un intervalo de 10 minutos, digamos, pero con cada momento de muestra alineado a un tiempo de ronda (13:00:00, 13:10:00, 13:20:00, ...) . Si un momento de remuestreo no cae exactamente en un valor de serie original, quiero tomar el anterior.
[r] xts
y lea detenidamente los archivos de r-sig-finance.Respuestas:
Por ejemplo
submuestras cada 20 minutos. Es posible que también desee comprobar hacia fuera
to.minutes
,to.daily
, etc.fuente
"seconds", 3601
, pero no funcionaTodavía no estoy seguro de lo que estás tratando de hacer y sigo pensando que un ejemplo podría ayudar, pero pensé que supongo que te puede interesar
align.time
.fuente
index(a1)=index(a1)-60;align.time(a1,60)
)align.time
eso que haga eso. De todos modos, parece una mala idea alinear las observaciones con un tiempo anterior a su ocurrencia.Si
a
es un objeto xts con entradas a una segunda resolución, esto desactiva todos los segundos: index (a) = trunc (index (a), "mins")También puede usar esto para redondear a una resolución de "horas". Pero 10 minutos no son compatibles. Para eso tienes que hacer esto:
O
a=align.time.down(a,600)
donde has definido:(Me he ido con esa última opción en mi propio guión).
fuente