Pergunta

Eu estou trabalhando em dados de escala e quero agregar meu xts espaçadas irregularmente série em 1 segundo um homogênea.Eu, portanto, usar o xts pacote de função.período :

price_1m <-to.period(price,period="seconds",k=1,OHLC=FALSE)

aqui está o que eu recebo :

2010-02-02 08:00:03 2787
2010-02-02 08:00:04 2786
2010-02-02 08:00:05 2787
2010-02-02 08:00:06 2787
2010-02-02 08:00:07 2786
2010-02-02 08:00:08 2786
2010-02-02 08:00:09 2786
2010-02-02 08:00:10 2787
2010-02-02 08:00:11 2786
2010-02-02 08:00:14 2786
2010-02-02 08:00:16 2786
2010-02-02 08:00:18 2787

Minha série é agregada, mas, por exemplo, dados de escala está em falta, às vezes, 08:00:13 08:00:15.O que eu quero é preencher os espaços em branco com os anteriores dados de escala, sabendo que o 08:00:13 08:00:15 preços estão em falta no tick-by-tick xts série.Alguma idéia?

obrigado

Foi útil?

Solução

Você pode mesclar price_1m com um "vazio" xts objeto que contém um índice com o regularmente espaçados em intervalos que você deseja, use na.locf no que.Por exemplo:

onemin <- seq(start(price_1m),end(price_1m),by="1 s")
Price_1m <- na.locf(merge(price_1m, xts(,onemin)))

Outras dicas

O MakeStrictlyRegular função no meu qmao pacote vai fazer isso por você.

Aqui está o exemplo do ?MakeStrictlyRegular

x <- align.time(.xts(1:1000, 60*1:1000))[-c(2, 4, 7, 8), ] # remove some rows at the begining
head(x[paste((start.x <- start(x)), "/")])
#                    [,1]
#1969-12-31 18:02:00    1
#1969-12-31 18:04:00    3
#1969-12-31 18:06:00    5
#1969-12-31 18:07:00    6
#1969-12-31 18:10:00    9
#1969-12-31 18:11:00   10
x2 <- MakeStrictlyRegular(x)
#added 4 (0.40%); There are now 1000 total rows.
head(x2[paste(start.x, "/")])
#                    [,1]
#1969-12-31 18:02:00    1
#1969-12-31 18:03:00    1
#1969-12-31 18:04:00    3
#1969-12-31 18:05:00    3
#1969-12-31 18:06:00    5
#1969-12-31 18:07:00    6

Para o seu 1 segundo de dados, você pode usar by="sec".Então, algo como

MakeStrictlyRegular(price, by="sec")
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top