xts :: to.period не дает ожидаемых результатов для различных аргументов indexAt - PullRequest
0 голосов
/ 25 марта 2020

Я новичок во временных рядах в R, и мне трудно понять, как работает xts::to.period. Вот минимальный пример:

library(xts)
library(lubridate)

data(sample_matrix) 

rs <- as.xts(sample_matrix)
rs<- rs[seq(1, 90, 13), "Open"]
rs

Все 4 варианта «indexAt» ниже дали одинаковый результат (т. Е. Последний элемент месяца), за исключением времени / без времени:

to.period(rs, period = "month", OHLC = F, indexAt = "firstof")  
to.period(rs, period = "month", OHLC = F, indexAt = "startof")
to.period(rs, period = "month", OHLC = F, indexAt = "lastof")
to.period(rs, period = "month", OHLC = F, indexAt = "endof")

I ожидал 4 разных вывода ...

Ожидаемый вывод для "firstof" (т.е. первый элемент с датой, как в данных):

rs[xts:::startof(rs, "month", k=1)]

Ожидаемый вывод для "startof" (т.е. первый элемент с первой датой периода):

tmp <- rs[xts:::startof(rs, "month", k=1)]
index(tmp) <- c(ymd(20070101), ymd(20070201), ymd(20070301))
print(tmp)

Ожидаемый результат для "lastof" (т.е. последний элемент с датой, как в данных):

rs[xts::endpoints(rs, on = "month", k=1)]

Ожидаемый результат для "endof" (т.е. последний элемент с последней датой периода):

tmp2 <- rs[xts::endpoints(rs, "month", k=1)]
index(tmp2) <- c(ymd(20070131), ymd(20070228), ymd(20070331))
print(tmp2)

Может кто-нибудь помочь мне понять, почему я не получаю ожидаемые результаты? Было бы здорово, если бы было несколько примеров того, как вариантные значения indexAt будут давать разные выходные данные. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...