resample
Syntax
resample(X, rule, func, [closed], [label], [origin='start_day'])
Arguments
X is a matrix or series with row labels. The row labels must be non-NULL values of temporal type, and must be increasing.
| Values of parameter "rule" | Corresponding DolphinDB function |
|---|---|
| "B" | businessDay |
| "W" | weekEnd |
| "WOM" | weekOfMonth |
| "LWOM" | lastWeekOfMonth |
| "M" | monthEnd |
| "MS" | monthBegin |
| "BM" | businessMonthEnd |
| "BMS" | businessMonthBegin |
| "SM" | semiMonthEnd |
| "SMS" | semiMonthBegin |
| "Q" | quarterEnd |
| "QS" | quarterBegin |
| "BQ" | businessQuarterEnd |
| "BQS" | businessQuarterBegin |
| "REQ" | FY5253Quarter |
| "A" | yearEnd |
| "AS" | yearBegin |
| "BA" | businessYearEnd |
| "BAS" | businessYearBegin |
| "RE" | FY5253 |
| "D" | date |
| "H" | hourOfDay |
| "min" | minuteOfHour |
| "S" | secondOfMinute |
| "L" | millisecond |
| "U" | microsecond |
| "N" | nanosecond |
func is an aggregate function.
-
The default value is 'left' for all values of rule except for 'M', 'A', 'Q', 'BM', 'BA', 'BQ', and 'W' which all have a default of 'right'.
-
The default is 'right' if origin is 'end' or 'end_day'.
-
For version 1.30.18/2.00.6, when the time precision of rule is less than day, only the default value can be used.
-
The default value is 'left' for all values of rule except for 'M', 'A', 'Q', 'BM', 'BA', 'BQ', and 'W' which all have a default of 'right'.
-
The default is 'right' if origin is 'end' or 'end_day'.
-
For version 1.30.18/2.00.6, when the time precision of rule is less than day, only the default value can be used.
-
'epoch': origin is 1970-01-01
-
'start': origin is the first value of the timeseries
-
'start_day': origin is 00:00 of the first day of the timeseries
-
'end': origin is the last value of the timeseries
-
'end_day': origin is 24:00 of the last day of the timeseries
Details
Apply func to X based on the frenquency (or the trading calendar) as specified in rule. Note that when rule is specified as the identifier of the trading calendar, data generated on a non-trading day will be calculated in the previous trading day.
Examples
index = [2000.01.01, 2000.01.31, 2000.02.15, 2000.02.20, 2000.03.12, 2000.04.16, 2000.05.06, 2000.08.30]
s = indexedSeries(index, 1..8)
s.resample("M", sum);
| col1 | |
|---|---|
| 2000.01.31 | 3 |
| 2000.02.29 | 7 |
| 2000.03.31 | 5 |
| 2000.04.30 | 6 |
| 2000.05.31 | 7 |
| 2000.06.30 | |
| 2000.07.31 | |
| 2000.08.31 | 8 |
s.resample("2M", last);
| col1 | |
|---|---|
| 2000.01.31 | 2 |
| 2000.03.31 | 5 |
| 2000.05.31 | 7 |
| 2000.07.31 | |
| 2000.09.30 | 8 |
index = temporalAdd(2022.01.01 00:00:00,1..8,`m)
s = indexedSeries(index, 1..8)
s.resample(rule=`3min, func=sum);
| label | col1 |
|---|---|
| 2022.01.01T00:00:00 | 3 |
| 2022.01.01T00:03:00 | 12 |
| 2022.01.01T00:06:00 | 21 |
s.resample(rule=`3min, func=sum, closed=`right);
| label | col1 |
|---|---|
| 2022.01.01T00:00:00 | 6 |
| 2022.01.01T00:03:00 | 15 |
| 2022.01.01T00:06:00 | 15 |
s.resample(rule=`3min, func=sum, closed=`left,origin=`end);
| label | col1 |
|---|---|
| 2022.01.01T00:02:00 | 1 |
| 2022.01.01T00:05:00 | 9 |
| 2022.01.01T00:08:00 | 18 |
| 2022.01.01T00:11:00 | 8 |
s.resample(rule=`3min, func=sum,origin=2022.10.01 00:00:10)
| label | col1 |
|---|---|
| 2022.01.01T00:00:10 | 6 |
| 2022.01.01T00:03:10 | 15 |
| 2022.01.01T00:06:10 | 15 |
A matrix with increasing row labels can be specified.
m = matrix(1..5, 1..5)
// The row labels are non-strictly increasing.
index = temporalAdd(2000.01.01, [1, 1, 2, 2, 3], "d")
m.rename!(index, `A`B);
m.resample(rule=`D, func=sum);
| label | A | B |
|---|---|---|
| 2000.01.02 | 3 | 3 |
| 2000.01.03 | 7 | 7 |
| 2000.01.04 | 5 | 5 |
