У меня есть данные временного ряда, отснятые со скоростью 10 минут. Я хочу разбить его по часам, но, к моему удивлению, split.xts
не дает ожидаемых результатов. Шаги используются:Сплит временные ряды данных почасово в R
library(xts)
set.seed(123)
Sys.setenv(TZ="Asia/Kolkata")
timeind <- seq(as.POSIXct("2017-01-20 00:00:00 IST"),
as.POSIXct("2017-01-20 23:59:59 IST"),by="10 min") #for indexing
df <- xts(runif(length(timeind),30,50),timeind) #xts data frame
split(df,"hours",k=1)
ВЫХОД ЕСТЬ:
[[1]]
[,1]
2017-01-20 00:00:00 31.24343
2017-01-20 00:10:00 32.57921
2017-01-20 00:20:00 40.17684
[[2]]
[,1]
2017-01-20 00:30:00 41.89185
2017-01-20 00:40:00 30.93997
2017-01-20 00:50:00 31.76651
2017-01-20 01:00:00 49.07364
2017-01-20 01:10:00 34.79113
2017-01-20 01:20:00 48.13881
Ожидаемый результат:
[[1]]
[,1]
2017-01-20 00:00:00 31.24343
2017-01-20 00:10:00 32.57921
2017-01-20 00:20:00 40.17684
2017-01-20 00:30:00 41.89185
2017-01-20 00:40:00 30.93997
2017-01-20 00:50:00 31.76651
[[2]]
2017-01-20 01:00:00 49.07364
2017-01-20 01:10:00 34.79113
2017-01-20 01:20:00 48.13881
...
Почему split.xts
не работает должным образом?
или вы используете base 'split()' с 'lubridate :: hour':' split (df, lubridate :: hour (timeind)) '. однако вывод будет списком объектов 'zoo'. – mtoto
вы также можете посмотреть пакет 'padr' – Aramis7d