Skip to contents

Aggregates time series data to a specified period (hour, day, or month) using a chosen summary statistic. The function requires a time column.

Usage

resample_time(data, cols = NULL, date_col = NULL,
              period = "hour", fun = "mean", na.rm = TRUE,
              verbose = FALSE)

Arguments

data

A data frame with a time column.

cols

Column indices or names to aggregate.

date_col

Time column index or name.

period

Target period: "hour", "day", or "month".

fun

Aggregation function: "mean", "sum", "min", "max", "median", or "sd".

na.rm

Logical; whether to remove NA values before aggregation.

verbose

Logical; if TRUE, prints progress message.

Value

A data frame with aggregated time series.

Examples

resample_time(data[1:500, c(1, 4, 17:19)], cols = 3:5, date_col = 1, period = "hour", fun = "mean")
#>                   time      3.98      4.47      5.01
#> 1  2019-12-31 16:00:00  52.11615  40.82180  34.77755
#> 2  2019-12-31 17:00:00  79.36553   6.59120  42.93320
#> 3  2019-12-31 18:00:00  96.11155 120.92290  83.28010
#> 4  2019-12-31 19:00:00  97.39155 148.20000  49.22410
#> 5  2019-12-31 20:00:00  42.92225  52.20107  32.21547
#> 6  2019-12-31 21:00:00  77.68060  73.42260  37.51110
#> 7  2019-12-31 22:00:00  62.97943 114.42270  58.60465
#> 8  2019-12-31 23:00:00  60.10017       NaN       NaN
#> 9  2020-01-01 00:00:00  35.99660  76.50240 111.10200
#> 10 2020-01-01 01:00:00  78.06425  29.93813  37.92977
#> 11 2020-01-01 02:00:00       NaN       NaN       NaN
#> 12 2020-01-01 03:00:00 122.52000       NaN       NaN
#> 13 2020-01-01 04:00:00 129.78600 148.34300  49.27180
#> 14 2020-01-01 05:00:00       NaN       NaN       NaN
#> 15 2020-01-01 06:00:00       NaN  14.03590  91.42587
#> 16 2020-01-01 07:00:00  82.74610  41.00585  35.97635
#> 17 2020-01-01 08:00:00       NaN       NaN       NaN
#> 18 2020-01-01 09:00:00       NaN       NaN       NaN
#> 19 2020-01-01 10:00:00  45.01850  78.33940  26.02020
#> 20 2020-01-01 11:00:00       NaN       NaN       NaN
#> 21 2020-01-01 12:00:00  43.71415  53.01217  31.81977
#> 22 2020-01-01 13:00:00       NaN       NaN       NaN
#> 23 2020-01-01 14:00:00  60.92270   7.09660  46.22525
#> 24 2020-01-01 15:00:00       NaN   6.94220  45.21980
#> 25 2020-01-01 16:00:00  51.71430  40.73445  34.90045
#> 26 2020-01-01 17:00:00  42.44450  75.67230  68.91530
#> 27 2020-01-01 18:00:00  57.14490       NaN       NaN
#> 28 2020-01-01 19:00:00       NaN       NaN       NaN
#> 29 2020-01-01 20:00:00  96.12420  39.62260  34.58465
#> 30 2020-01-01 21:00:00  57.14490       NaN       NaN
#> 31 2020-01-01 22:00:00       NaN   9.38710  47.90090
#> 32 2020-01-01 23:00:00       NaN       NaN       NaN
#> 33 2020-01-02 00:00:00  51.71430  72.09130  21.94830
#> 34 2020-01-02 01:00:00  54.34670  77.67380  23.64790
#> 35 2020-01-02 02:00:00  63.29570  76.30300  34.56020
#> 36 2020-01-02 03:00:00  42.10580  32.79082  62.42740
#> 37 2020-01-02 04:00:00  84.70902  98.48816 128.92314
#> 38 2020-01-02 05:00:00  91.78552  89.67932 188.63897
#> 39 2020-01-02 06:00:00 141.47367  85.53122 164.25535
#> 40 2020-01-02 07:00:00  51.09600  68.14765 166.69875
#> 41 2020-01-02 08:00:00  43.99700  43.19600  56.00650
#> 42 2020-01-02 09:00:00  57.39115  19.24520  98.20540
#> 43 2020-01-02 10:00:00  83.04525  73.82930  22.47740
#> 44 2020-01-02 11:00:00       NaN   9.98060  50.92970
#> 45 2020-01-02 12:00:00       NaN       NaN       NaN
#> 46 2020-01-02 13:00:00  59.55320  20.06810 102.40500
#> 47 2020-01-02 14:00:00       NaN   9.85420  50.28445
#> 48 2020-01-02 15:00:00  47.59410  31.23653  40.82310
#> 49 2020-01-02 16:00:00  97.95600  87.89805  74.61090
#> 50 2020-01-02 17:00:00       NaN   9.02960  49.07030
#> 51 2020-01-02 18:00:00  50.60625  34.93900  58.64323
#> 52 2020-01-02 19:00:00  93.26855       NaN       NaN
#> 53 2020-01-02 20:00:00  47.73565  54.15580  32.41293
#> 54 2020-01-02 21:00:00  47.47143  59.46948  30.18392
#> 55 2020-01-02 22:00:00       NaN       NaN       NaN
#> 56 2020-01-02 23:00:00  62.17910       NaN       NaN
#> 57 2020-01-03 00:00:00       NaN       NaN       NaN
#> 58 2020-01-03 01:00:00  61.84230   9.06440  49.25920
#> 59 2020-01-03 02:00:00  47.83900  76.85780  23.98870
#> 60 2020-01-03 03:00:00  55.00905  76.85780  23.98870
#> 61 2020-01-03 04:00:00  47.83900  43.14770  37.63815
#> 62 2020-01-03 05:00:00       NaN       NaN       NaN
#> 63 2020-01-03 06:00:00  62.17910       NaN       NaN
#> 64 2020-01-03 07:00:00  95.22100  81.20980  49.51795
#> 65 2020-01-03 08:00:00       NaN       NaN       NaN
#> 66 2020-01-03 09:00:00       NaN       NaN       NaN
#> 67 2020-01-03 10:00:00       NaN       NaN       NaN
#> 68 2020-01-03 11:00:00       NaN   8.93215  48.54095
#> 69 2020-01-03 12:00:00 125.88764 161.86740 119.43740
#> 70 2020-01-03 13:00:00  46.43897  43.07963 177.56103
#> 71 2020-01-03 14:00:00 100.77990  93.44288 159.54298
#> 72 2020-01-03 15:00:00  73.70650 109.32705 155.54600
#> 73 2020-01-03 16:00:00  94.69088  47.63155  74.17973
#> 74 2020-01-03 17:00:00  73.05784 124.45060 143.96672
#> 75 2020-01-03 18:00:00 139.96967 118.03897 106.06630
#> 76 2020-01-03 19:00:00  74.58698  72.12315 128.79462
#> 77 2020-01-03 20:00:00  87.74453  46.77912  93.77387
#> 78 2020-01-03 21:00:00  92.97167  56.00472 101.30438
#> 79 2020-01-03 22:00:00 118.42676 148.34602 128.52968
#> 80 2020-01-03 23:00:00  70.69970  49.41182 134.30918
#> 81 2020-01-04 00:00:00  63.85795  35.05062  68.63544
#> 82 2020-01-04 01:00:00  72.37350  84.40637 116.16015
#> 83 2020-01-04 02:00:00  44.54420  26.14510  50.81660
#> 84 2020-01-04 03:00:00  59.04127  77.71350  43.90800
#> 85 2020-01-04 04:00:00       NaN   7.73090  46.58090