Прокручивающееся окно данных временных рядов DolphinDB

В пандах скользящее окно может быть рассчитано для столбца, похожего на дату и время, с окном, подобным смещению.

Официальная документация дает пример:

>>> df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]},
...                   index = [pd.Timestamp('20130101 09:00:00'),
...                            pd.Timestamp('20130101 09:00:02'),
...                            pd.Timestamp('20130101 09:00:03'),
...                            pd.Timestamp('20130101 09:00:05'),
...                            pd.Timestamp('20130101 09:00:06')])

>>> df.rolling('2s').sum()
                       B
2013-01-01 09:00:00  0.0
2013-01-01 09:00:02  1.0
2013-01-01 09:00:03  3.0
2013-01-01 09:00:05  NaN
2013-01-01 09:00:06  4.0

В DolphinDB движущиеся функции, такие как mavg, msum и т. д., могут быть рассчитаны только на основе количества строк столбцов, а не периодов времени. Итак, когда я запускаю следующий код:

t = table(09:00:00 09:00:02 09:00:03 09:00:05 09:00:06 as time, 0 1 2 NULL 4 as B)
select msum(B, 2) from t

что я получил:

msum_B
------
NULL      
1     
3     
2     
4     

И результат остается одним и тем же независимо от столбца времени.

Я хотел бы знать, можно ли рассчитать скользящие окна на основе столбца времени в DolphinDB.


person 3dori    schedule 19.09.2019    source источник


Ответы (1)


оконное соединение базы данных DolphinDB удовлетворяет ваши потребности.

select  tleft.time, sum from wj(t as tleft, t, -1:0, <sum(B) as sum>, `time)
person Davis Zhou    schedule 31.10.2019