
Apply rolling window statistics
roll_apply.RdComputes rolling statistics (mean, sd, median, sum, min, max, var) over a moving window of fixed length. Supports group-wise computation and various alignments.
Usage
roll_apply(data, cols = NULL, window = 3, method = "mean",
align = "right", group = NULL, date_col = NULL,
verbose = FALSE)Arguments
- data
A data frame, matrix, or numeric vector.
- cols
Column indices or names to process.
- window
Window size (number of observations).
- method
Statistic to compute:
"mean","sd","median","sum","min","max", or"var".- align
Alignment of window:
"right","left", or"center".- group
Optional grouping column for group-wise rolling computation.
- date_col
Time column (not required, used only to order if provided).
- verbose
Logical; if
TRUE, prints progress message.
Examples
roll_apply(data[1:100, c(1, 4, 17:19)], cols = 3:5, window = 5, method = "mean")
#> date monthyear 3.98 4.47 5.01
#> 1 2019-12-31 16:00:00 January 2020 NA NA NA
#> 2 2019-12-31 16:10:00 January 2020 NA NA NA
#> 3 2019-12-31 16:20:00 January 2020 NA NA NA
#> 4 2019-12-31 16:30:00 January 2020 42.97220 74.77850 24.83750
#> 5 2019-12-31 16:40:00 January 2020 42.97220 40.82180 34.77755
#> 6 2019-12-31 16:50:00 January 2020 52.11615 40.82180 34.77755
#> 7 2019-12-31 17:00:00 January 2020 73.37610 40.82180 34.77755
#> 8 2019-12-31 17:10:00 January 2020 73.37610 40.82180 34.77755
#> 9 2019-12-31 17:20:00 January 2020 79.47207 6.86510 44.71760
#> 10 2019-12-31 17:30:00 January 2020 74.83918 6.59120 42.93320
#> 11 2019-12-31 17:40:00 January 2020 79.36553 6.59120 42.93320
#> 12 2019-12-31 17:50:00 January 2020 61.10030 6.59120 42.93320
#> 13 2019-12-31 18:00:00 January 2020 61.10030 10.27050 66.89915
#> 14 2019-12-31 18:10:00 January 2020 60.94050 10.27050 66.89915
#> 15 2019-12-31 18:20:00 January 2020 61.26010 13.94980 90.86510
#> 16 2019-12-31 18:30:00 January 2020 96.11155 120.92290 83.28010
#> 17 2019-12-31 18:40:00 January 2020 96.11155 120.92290 83.28010
#> 18 2019-12-31 18:50:00 January 2020 96.11155 227.89600 75.69510
#> 19 2019-12-31 19:00:00 January 2020 96.11155 227.89600 75.69510
#> 20 2019-12-31 19:10:00 January 2020 132.24300 188.04800 62.45960
#> 21 2019-12-31 19:20:00 January 2020 97.39155 148.20000 49.22410
#> 22 2019-12-31 19:40:00 January 2020 97.39155 148.20000 49.22410
#> 23 2019-12-31 19:50:00 January 2020 97.39155 148.20000 49.22410
#> 24 2019-12-31 20:00:00 January 2020 97.39155 148.20000 49.22410
#> 25 2019-12-31 20:10:00 January 2020 61.26010 NA NA
#> 26 2019-12-31 20:20:00 January 2020 42.87230 74.60470 24.77970
#> 27 2019-12-31 20:30:00 January 2020 42.92225 74.69160 24.80860
#> 28 2019-12-31 20:40:00 January 2020 42.92225 74.69160 24.80860
#> 29 2019-12-31 20:50:00 January 2020 42.92225 52.20107 32.21547
#> 30 2019-12-31 21:00:00 January 2020 42.92225 52.20107 32.21547
#> 31 2019-12-31 21:10:00 January 2020 69.76180 51.38500 31.94443
#> 32 2019-12-31 21:20:00 January 2020 68.17090 51.66250 45.16057
#> 33 2019-12-31 21:30:00 January 2020 77.68060 56.87195 39.89062
#> 34 2019-12-31 21:40:00 January 2020 77.68060 73.42260 37.51110
#> 35 2019-12-31 21:50:00 January 2020 77.68060 73.42260 37.51110
#> 36 2019-12-31 22:00:00 January 2020 68.24520 74.05565 44.28335
#> 37 2019-12-31 22:10:00 January 2020 96.70000 72.50030 24.08080
#> 38 2019-12-31 22:20:00 January 2020 45.01850 78.33940 26.02020
#> 39 2019-12-31 22:30:00 January 2020 53.13930 78.33940 26.02020
#> 40 2019-12-31 22:40:00 January 2020 62.97943 114.42270 58.60465
#> 41 2019-12-31 22:50:00 January 2020 62.97943 114.42270 58.60465
#> 42 2019-12-31 23:00:00 January 2020 62.54960 114.42270 58.60465
#> 43 2019-12-31 23:10:00 January 2020 68.39330 150.50600 91.18910
#> 44 2019-12-31 23:20:00 January 2020 67.23337 150.50600 91.18910
#> 45 2019-12-31 23:30:00 January 2020 59.52020 NA NA
#> 46 2019-12-31 23:40:00 January 2020 59.52020 NA NA
#> 47 2019-12-31 23:50:00 January 2020 59.52020 NA NA
#> 48 2020-01-01 00:00:00 January 2020 59.52020 NA NA
#> 49 2020-01-01 00:10:00 January 2020 61.26010 NA NA
#> 50 2020-01-01 00:20:00 January 2020 61.26010 NA NA
#> 51 2020-01-01 00:30:00 January 2020 61.26010 NA NA
#> 52 2020-01-01 00:40:00 January 2020 35.99660 76.50240 111.10200
#> 53 2020-01-01 00:50:00 January 2020 35.99660 76.50240 111.10200
#> 54 2020-01-01 01:00:00 January 2020 35.99660 76.50240 111.10200
#> 55 2020-01-01 01:10:00 January 2020 48.62835 76.50240 111.10200
#> 56 2020-01-01 01:20:00 January 2020 64.04170 76.36745 68.21120
#> 57 2020-01-01 01:30:00 January 2020 78.06425 41.41975 34.17840
#> 58 2020-01-01 01:40:00 January 2020 78.06425 29.93813 37.92977
#> 59 2020-01-01 01:50:00 January 2020 78.06425 29.93813 37.92977
#> 60 2020-01-01 02:20:00 January 2020 94.86840 29.93813 37.92977
#> 61 2020-01-01 02:30:00 January 2020 NA 6.79095 44.23445
#> 62 2020-01-01 02:40:00 January 2020 NA 6.97490 45.43250
#> 63 2020-01-01 02:50:00 January 2020 NA NA NA
#> 64 2020-01-01 03:00:00 January 2020 NA NA NA
#> 65 2020-01-01 03:10:00 January 2020 NA NA NA
#> 66 2020-01-01 03:20:00 January 2020 NA NA NA
#> 67 2020-01-01 03:30:00 January 2020 122.52000 NA NA
#> 68 2020-01-01 03:40:00 January 2020 122.52000 NA NA
#> 69 2020-01-01 03:50:00 January 2020 122.52000 NA NA
#> 70 2020-01-01 04:00:00 January 2020 122.52000 NA NA
#> 71 2020-01-01 04:10:00 January 2020 122.52000 NA NA
#> 72 2020-01-01 04:20:00 January 2020 129.78600 148.34300 49.27180
#> 73 2020-01-01 04:30:00 January 2020 129.78600 148.34300 49.27180
#> 74 2020-01-01 04:40:00 January 2020 129.78600 148.34300 49.27180
#> 75 2020-01-01 04:50:00 January 2020 129.78600 148.34300 49.27180
#> 76 2020-01-01 05:00:00 January 2020 129.78600 148.34300 49.27180
#> 77 2020-01-01 05:40:00 January 2020 NA NA NA
#> 78 2020-01-01 05:50:00 January 2020 NA NA NA
#> 79 2020-01-01 06:00:00 January 2020 NA NA NA
#> 80 2020-01-01 06:10:00 January 2020 NA NA NA
#> 81 2020-01-01 06:20:00 January 2020 NA 6.97490 45.43250
#> 82 2020-01-01 06:30:00 January 2020 NA 6.97490 45.43250
#> 83 2020-01-01 06:40:00 January 2020 NA 14.07895 91.70625
#> 84 2020-01-01 06:50:00 January 2020 NA 14.03590 91.42587
#> 85 2020-01-01 07:00:00 January 2020 NA 14.03590 91.42587
#> 86 2020-01-01 07:10:00 January 2020 NA 17.56640 114.42255
#> 87 2020-01-01 07:20:00 January 2020 122.52000 17.56640 114.42255
#> 88 2020-01-01 07:30:00 January 2020 122.52000 10.59150 68.99015
#> 89 2020-01-01 07:40:00 January 2020 82.74610 41.00585 35.97635
#> 90 2020-01-01 07:50:00 January 2020 82.74610 41.00585 35.97635
#> 91 2020-01-01 08:00:00 January 2020 82.74610 41.00585 35.97635
#> 92 2020-01-01 08:10:00 January 2020 42.97220 41.00585 35.97635
#> 93 2020-01-01 08:20:00 January 2020 42.97220 74.77850 24.83750
#> 94 2020-01-01 08:30:00 January 2020 NA NA NA
#> 95 2020-01-01 08:40:00 January 2020 NA NA NA
#> 96 2020-01-01 08:50:00 January 2020 NA NA NA
#> 97 2020-01-01 09:00:00 January 2020 NA NA NA
#> 98 2020-01-01 09:10:00 January 2020 NA NA NA
#> 99 2020-01-01 09:20:00 January 2020 NA NA NA
#> 100 2020-01-01 09:30:00 January 2020 NA NA NA