Search code examples
rmoving-average

How to calculate Moving Average with time stamp format of YYYY-mm-dd HH:MM:SS at 24, 48, and 72 hours?


Below is a sample of my dataframe which has timestamps every 15 minutes:

df = structure(list(Date_Time_GMT_3 = structure(c(1625746500, 1625747400, 
1625748300, 1625749200, 1625750100, 1625751000, 1625751900, 1625752800, 
1625753700, 1625754600, 1625755500, 1625756400, 1625757300, 1625758200, 
1625759100, 1625760000, 1625760900, 1625761800, 1625762700, 1625763600, 
1625764500, 1625765400, 1625766300, 1625767200, 1625768100, 1625769000, 
1625769900, 1625770800, 1625771700, 1625772600, 1625773500, 1625774400, 
1625775300, 1625776200, 1625777100, 1625778000, 1625778900, 1625779800, 
1625780700, 1625781600, 1625782500, 1625783400, 1625784300, 1625785200, 
1625786100, 1625787000, 1625787900, 1625788800, 1625789700, 1625790600, 
1625791500, 1625792400, 1625793300, 1625794200, 1625795100, 1625796000, 
1625796900, 1625797800, 1625798700, 1625799600, 1625800500, 1625801400, 
1625802300, 1625803200, 1625804100, 1625805000, 1625805900, 1625806800, 
1625807700, 1625808600, 1625809500, 1625810400, 1625811300, 1625812200, 
1625813100, 1625814000, 1625814900, 1625815800, 1625816700, 1625817600, 
1625818500, 1625819400, 1625820300, 1625821200, 1625822100, 1625823000, 
1625823900, 1625824800, 1625825700, 1625826600, 1625827500, 1625828400, 
1625829300, 1625830200, 1625831100, 1625832000, 1625832900, 1625833800, 
1625834700, 1625835600, 1625836500, 1625837400, 1625838300, 1625839200, 
1625840100, 1625841000, 1625841900, 1625842800, 1625843700, 1625844600, 
1625845500, 1625846400, 1625847300, 1625848200, 1625849100, 1625850000, 
1625850900, 1625851800, 1625852700, 1625853600, 1625854500, 1625855400, 
1625856300, 1625857200, 1625858100, 1625859000, 1625859900, 1625860800, 
1625861700, 1625862600, 1625863500, 1625864400, 1625865300, 1625866200, 
1625867100, 1625868000, 1625868900, 1625869800, 1625870700, 1625871600, 
1625872500, 1625873400, 1625874300, 1625875200, 1625876100, 1625877000, 
1625877900, 1625878800, 1625879700, 1625880600, 1625881500, 1625882400, 
1625883300, 1625884200, 1625885100, 1625886000, 1625886900, 1625887800, 
1625888700, 1625889600, 1625890500, 1625891400, 1625892300, 1625893200, 
1625894100, 1625895000, 1625895900, 1625896800, 1625897700, 1625898600, 
1625899500, 1625900400, 1625901300, 1625902200, 1625903100, 1625904000, 
1625904900, 1625905800, 1625906700, 1625907600, 1625908500, 1625909400, 
1625910300, 1625911200, 1625912100, 1625913000, 1625913900, 1625914800, 
1625915700, 1625916600, 1625917500, 1625918400, 1625919300, 1625920200, 
1625921100, 1625922000, 1625922900, 1625923800, 1625924700, 1625925600, 
1625926500, 1625927400, 1625928300, 1625929200, 1625930100, 1625931000, 
1625931900, 1625932800, 1625933700, 1625934600, 1625935500, 1625936400, 
1625937300, 1625938200, 1625939100, 1625940000, 1625940900, 1625941800, 
1625942700, 1625943600, 1625944500, 1625945400, 1625946300, 1625947200, 
1625948100, 1625949000, 1625949900, 1625950800, 1625951700, 1625952600, 
1625953500, 1625954400, 1625955300, 1625956200, 1625957100, 1625958000, 
1625958900, 1625959800, 1625960700, 1625961600, 1625962500, 1625963400, 
1625964300, 1625965200, 1625966100, 1625967000, 1625967900, 1625968800, 
1625969700, 1625970600, 1625971500, 1625972400, 1625973300, 1625974200, 
1625975100, 1625976000, 1625976900, 1625977800, 1625978700, 1625979600, 
1625980500, 1625981400, 1625982300, 1625983200, 1625984100, 1625985000, 
1625985900, 1625986800, 1625987700, 1625988600, 1625989500, 1625990400, 
1625991300, 1625992200, 1625993100, 1625994000, 1625994900, 1625995800, 
1625996700, 1625997600, 1625998500, 1625999400, 1626000300, 1626001200, 
1626002100, 1626003000, 1626003900, 1626004800, 1626005700), class = c("POSIXct", 
"POSIXt"), tzone = "EST"), `20817729_2PT_Stationary` = c(21.473, 
21.473, 21.473, 21.473, 21.473, 21.473, 21.473, 21.473, 21.473, 
21.473, 21.569, 21.569, 21.569, 21.569, 21.664, 21.664, 21.664, 
21.76, 21.855, 21.951, 22.142, 22.333, 22.621, 22.908, 23.1, 
23.292, 23.388, 23.388, 23.292, 23.292, 23.196, 23.196, 23.292, 
23.292, 23.388, 23.388, 23.388, 23.388, 23.388, 23.388, 23.388, 
23.292, 23.292, 23.196, 23.196, 23.1, 23.1, 23.004, 23.004, 22.908, 
22.812, 22.717, 22.621, 22.621, 22.429, 22.333, 22.238, 22.142, 
22.142, 22.046, 21.951, 21.855, 21.855, 21.76, 21.664, 21.569, 
21.473, 21.473, 21.378, 21.282, 21.282, 21.187, 21.091, 21.091, 
20.996, 20.901, 20.901, 20.805, 20.805, 20.805, 20.71, 20.71, 
20.615, 20.615, 20.615, 20.519, 20.519, 20.519, 20.519, 20.424, 
20.424, 20.424, 20.424, 20.424, 20.329, 20.329, 20.329, 20.329, 
20.329, 20.329, 20.424, 20.424, 20.424, 20.519, 20.519, 20.519, 
20.519, 20.519, 20.519, 20.519, 20.519, 20.519, 20.519, 20.615, 
20.615, 20.71, 20.805, 20.805, 20.901, 20.901, 20.996, 21.091, 
21.187, 21.187, 21.187, 21.187, 21.187, 21.187, 21.187, 21.187, 
21.282, 21.282, 21.187, 21.187, 21.187, 21.187, 21.187, 21.187, 
21.187, 21.187, 21.187, 21.091, 21.091, 21.091, 21.091, 21.091, 
20.996, 20.996, 20.901, 20.901, 20.805, 20.805, 20.71, 20.71, 
20.615, 20.615, 20.615, 20.519, 20.519, 20.519, 20.424, 20.424, 
20.424, 20.329, 20.329, 20.329, 20.234, 20.234, 20.234, 20.138, 
20.138, 20.043, 20.043, 19.948, 19.948, 19.948, 19.853, 19.853, 
19.853, 19.853, 19.853, 19.758, 19.758, 19.758, 19.758, 19.662, 
19.662, 19.567, 19.567, 19.567, 19.472, 19.472, 19.472, 19.472, 
19.472, 19.472, 19.567, 19.567, 19.662, 19.662, 19.758, 19.948, 
20.043, 20.234, 20.424, 20.519, 20.805, 20.996, 21.091, 21.282, 
21.473, 21.76, 21.951, 22.238, 22.525, 22.717, 22.908, 23.1, 
23.388, 23.484, 23.484, 23.484, 23.388, 23.484, 23.484, 23.484, 
23.581, 23.581, 23.484, 23.484, 23.484, 23.388, 23.388, 23.388, 
23.388, 23.388, 23.388, 23.388, 23.388, 23.292, 23.292, 23.196, 
23.1, 23.1, 23.004, 22.908, 22.812, 22.717, 22.717, 22.621, 22.525, 
22.429, 22.429, 22.333, 22.238, 22.238, 22.238, 22.142, 22.142, 
22.046, 22.046, 21.951, 21.855, 21.855, 21.76, 21.76, 21.664, 
21.664, 21.664, 21.664, 21.569, 21.569, 21.569, 21.569, 21.473, 
21.473, 21.473, 21.473, 21.473, 21.473, 21.378, 21.378, 21.378, 
21.378, 21.282, 21.282, 21.282, 21.282, 21.282), `20822229_4PT_Stationary` = c(17.855, 
17.855, 17.855, 17.855, 17.855, 17.855, 17.855, 17.855, 17.855, 
17.855, 17.855, 17.855, 17.855, 17.855, 17.95, 17.95, 17.95, 
18.045, 18.045, 18.14, 18.426, 18.616, 18.806, 18.996, 19.092, 
19.282, 19.282, 19.282, 19.187, 19.092, 19.092, 19.092, 19.092, 
19.282, 19.282, 19.187, 19.187, 19.187, 19.282, 19.187, 19.092, 
18.996, 18.996, 18.996, 18.901, 18.901, 18.806, 18.806, 18.711, 
18.711, 18.616, 18.521, 18.521, 18.426, 18.331, 18.236, 18.236, 
18.14, 18.045, 18.045, 17.95, 17.95, 17.855, 17.855, 17.76, 17.665, 
17.665, 17.57, 17.57, 17.475, 17.475, 17.379, 17.379, 17.284, 
17.284, 17.284, 17.189, 17.189, 17.094, 17.094, 17.094, 17.094, 
16.999, 16.999, 16.999, 16.999, 16.999, 16.999, 16.903, 16.903, 
16.903, 16.903, 16.903, 16.903, 16.903, 16.903, 16.999, 16.999, 
16.999, 16.999, 17.094, 17.094, 17.094, 17.189, 17.189, 17.284, 
17.284, 17.379, 17.379, 17.475, 17.475, 17.475, 17.57, 17.665, 
17.665, 17.76, 17.855, 17.855, 17.95, 18.045, 18.14, 18.236, 
18.236, 18.331, 18.331, 18.331, 18.426, 18.521, 18.521, 18.521, 
18.521, 18.616, 18.616, 18.616, 18.616, 18.616, 18.616, 18.616, 
18.616, 18.616, 18.616, 18.616, 18.616, 18.616, 18.521, 18.521, 
18.521, 18.521, 18.521, 18.521, 18.426, 18.426, 18.426, 18.331, 
18.331, 18.331, 18.331, 18.331, 18.331, 18.236, 18.236, 18.236, 
18.236, 18.236, 18.236, 18.236, 18.236, 18.236, 18.236, 18.236, 
18.236, 18.14, 18.14, 18.14, 18.14, 18.045, 18.045, 18.045, 17.95, 
17.95, 17.95, 17.95, 17.95, 17.95, 17.95, 17.855, 17.855, 17.855, 
17.855, 17.855, 17.855, 17.855, 17.855, 17.855, 17.855, 17.95, 
17.95, 17.95, 18.045, 18.14, 18.14, 18.236, 18.331, 18.426, 18.521, 
18.616, 18.711, 18.806, 18.901, 19.092, 19.187, 19.377, 19.567, 
19.758, 19.948, 20.043, 20.329, 20.519, 20.71, 20.71, 20.805, 
20.901, 20.901, 20.901, 20.901, 20.996, 20.901, 20.901, 20.901, 
20.901, 20.901, 20.805, 20.805, 20.805, 20.805, 20.805, 20.805, 
20.805, 20.805, 20.805, 20.805, 20.71, 20.71, 20.615, 20.615, 
20.519, 20.424, 20.424, 20.329, 20.234, 20.138, 20.138, 20.043, 
19.948, 19.853, 19.853, 19.758, 19.662, 19.662, 19.567, 19.567, 
19.472, 19.472, 19.377, 19.282, 19.282, 19.187, 19.187, 19.092, 
19.092, 19.092, 18.996, 18.996, 18.996, 18.901, 18.901, 18.901, 
18.901, 18.806, 18.806, 18.806, 18.806, 18.806, 18.711, 18.711, 
18.711, 18.711, 18.711, 18.616), `20822227_4PT_U_Stationary` = c(17.855, 
17.855, 17.855, 17.855, 17.855, 17.855, 17.855, 17.855, 17.855, 
17.855, 17.855, 17.855, 17.855, 17.95, 17.95, 17.95, 17.95, 18.045, 
18.14, 18.236, 18.521, 18.711, 18.996, 19.092, 19.282, 19.282, 
19.282, 19.282, 19.187, 19.092, 19.092, 19.092, 19.187, 19.282, 
19.282, 19.187, 19.187, 19.282, 19.282, 19.187, 19.092, 18.996, 
18.996, 18.996, 18.901, 18.901, 18.806, 18.711, 18.711, 18.711, 
18.616, 18.521, 18.426, 18.426, 18.331, 18.236, 18.236, 18.14, 
18.045, 18.045, 17.95, 17.855, 17.855, 17.76, 17.76, 17.665, 
17.665, 17.57, 17.57, 17.475, 17.475, 17.379, 17.379, 17.284, 
17.284, 17.189, 17.189, 17.189, 17.189, 17.094, 17.094, 17.094, 
17.094, 16.999, 16.999, 16.999, 16.999, 16.999, 16.903, 16.903, 
16.903, 16.903, 16.903, 16.903, 16.903, 16.903, 16.999, 16.999, 
16.999, 16.999, 17.094, 17.094, 17.189, 17.189, 17.284, 17.284, 
17.379, 17.379, 17.475, 17.475, 17.475, 17.475, 17.57, 17.665, 
17.76, 17.76, 17.855, 17.855, 17.95, 18.045, 18.14, 18.236, 18.331, 
18.331, 18.331, 18.426, 18.426, 18.521, 18.521, 18.521, 18.616, 
18.616, 18.616, 18.616, 18.616, 18.616, 18.616, 18.616, 18.616, 
18.616, 18.616, 18.616, 18.616, 18.616, 18.521, 18.521, 18.521, 
18.521, 18.521, 18.521, 18.426, 18.426, 18.426, 18.331, 18.331, 
18.331, 18.331, 18.331, 18.236, 18.236, 18.236, 18.236, 18.236, 
18.236, 18.236, 18.236, 18.236, 18.236, 18.236, 18.236, 18.236, 
18.236, 18.14, 18.14, 18.14, 18.045, 18.045, 18.045, 17.95, 17.95, 
17.95, 17.95, 17.95, 17.95, 17.95, 17.855, 17.855, 17.855, 17.855, 
17.855, 17.855, 17.855, 17.855, 17.855, 17.95, 17.95, 17.95, 
18.045, 18.045, 18.14, 18.236, 18.236, 18.331, 18.426, 18.521, 
18.711, 18.806, 18.806, 18.996, 19.092, 19.282, 19.472, 19.662, 
19.853, 20.043, 20.234, 20.424, 20.615, 20.71, 20.71, 20.901, 
20.901, 20.901, 20.901, 20.901, 20.901, 20.901, 20.901, 20.901, 
20.901, 20.901, 20.901, 20.805, 20.805, 20.805, 20.805, 20.805, 
20.805, 20.805, 20.805, 20.805, 20.71, 20.71, 20.615, 20.615, 
20.519, 20.424, 20.329, 20.329, 20.234, 20.138, 20.043, 20.043, 
19.948, 19.853, 19.758, 19.758, 19.662, 19.662, 19.567, 19.472, 
19.472, 19.377, 19.377, 19.282, 19.282, 19.187, 19.187, 19.092, 
19.092, 19.092, 18.996, 18.996, 18.996, 18.901, 18.901, 18.901, 
18.901, 18.806, 18.806, 18.806, 18.806, 18.806, 18.711, 18.711, 
18.711, 18.711, 18.711, 18.616)), row.names = c(NA, 289L), class = "data.frame")

I am trying to make a new dataframe that contains the moving average for every column in my original df, with a window of 24, 48, and 72 hours. The output dataframe should still have the Date_Time column, and then 3 new columns for every column in df (i.e. 24, 48, 72 moving average of "20817729_2PT_Stationary", "20822229_4PT_Stationary", and "20822227_4PT_U_Stationary"). Because the moving averages require a window of 24, 48, and 72 hours, the values shouldn't start until 24, 48, and 72 hours AFTER the initial Date/time in df (ex. 24 hour moving average from df uses values from 2021-07-08 07:15:00 to 2021-07-09 07:15:00, and therefore values won't start appearing until 2021-07-09 07:15:00). The last thing that should be noted, is my actual dataframe has 20+ more columns than the one in df so I need an efficient way to calculate it for all columns. Any ideas?


Solution

  • Try this:

    library(tidyverse)
    library(slider)
    
    # Supplied sample data
    df <- structure(list(Date_Time_GMT_3 = structure(c(
      1625746500, 1625747400,
      1625748300, 1625749200, 1625750100, 1625751000, 1625751900, 1625752800,
      1625753700, 1625754600, 1625755500, 1625756400, 1625757300, 1625758200,
      1625759100, 1625760000, 1625760900, 1625761800, 1625762700, 1625763600,
      1625764500, 1625765400, 1625766300, 1625767200, 1625768100, 1625769000,
      1625769900, 1625770800, 1625771700, 1625772600, 1625773500, 1625774400,
      1625775300, 1625776200, 1625777100, 1625778000, 1625778900, 1625779800,
      1625780700, 1625781600, 1625782500, 1625783400, 1625784300, 1625785200,
      1625786100, 1625787000, 1625787900, 1625788800, 1625789700, 1625790600,
      1625791500, 1625792400, 1625793300, 1625794200, 1625795100, 1625796000,
      1625796900, 1625797800, 1625798700, 1625799600, 1625800500, 1625801400,
      1625802300, 1625803200, 1625804100, 1625805000, 1625805900, 1625806800,
      1625807700, 1625808600, 1625809500, 1625810400, 1625811300, 1625812200,
      1625813100, 1625814000, 1625814900, 1625815800, 1625816700, 1625817600,
      1625818500, 1625819400, 1625820300, 1625821200, 1625822100, 1625823000,
      1625823900, 1625824800, 1625825700, 1625826600, 1625827500, 1625828400,
      1625829300, 1625830200, 1625831100, 1625832000, 1625832900, 1625833800,
      1625834700, 1625835600, 1625836500, 1625837400, 1625838300, 1625839200,
      1625840100, 1625841000, 1625841900, 1625842800, 1625843700, 1625844600,
      1625845500, 1625846400, 1625847300, 1625848200, 1625849100, 1625850000,
      1625850900, 1625851800, 1625852700, 1625853600, 1625854500, 1625855400,
      1625856300, 1625857200, 1625858100, 1625859000, 1625859900, 1625860800,
      1625861700, 1625862600, 1625863500, 1625864400, 1625865300, 1625866200,
      1625867100, 1625868000, 1625868900, 1625869800, 1625870700, 1625871600,
      1625872500, 1625873400, 1625874300, 1625875200, 1625876100, 1625877000,
      1625877900, 1625878800, 1625879700, 1625880600, 1625881500, 1625882400,
      1625883300, 1625884200, 1625885100, 1625886000, 1625886900, 1625887800,
      1625888700, 1625889600, 1625890500, 1625891400, 1625892300, 1625893200,
      1625894100, 1625895000, 1625895900, 1625896800, 1625897700, 1625898600,
      1625899500, 1625900400, 1625901300, 1625902200, 1625903100, 1625904000,
      1625904900, 1625905800, 1625906700, 1625907600, 1625908500, 1625909400,
      1625910300, 1625911200, 1625912100, 1625913000, 1625913900, 1625914800,
      1625915700, 1625916600, 1625917500, 1625918400, 1625919300, 1625920200,
      1625921100, 1625922000, 1625922900, 1625923800, 1625924700, 1625925600,
      1625926500, 1625927400, 1625928300, 1625929200, 1625930100, 1625931000,
      1625931900, 1625932800, 1625933700, 1625934600, 1625935500, 1625936400,
      1625937300, 1625938200, 1625939100, 1625940000, 1625940900, 1625941800,
      1625942700, 1625943600, 1625944500, 1625945400, 1625946300, 1625947200,
      1625948100, 1625949000, 1625949900, 1625950800, 1625951700, 1625952600,
      1625953500, 1625954400, 1625955300, 1625956200, 1625957100, 1625958000,
      1625958900, 1625959800, 1625960700, 1625961600, 1625962500, 1625963400,
      1625964300, 1625965200, 1625966100, 1625967000, 1625967900, 1625968800,
      1625969700, 1625970600, 1625971500, 1625972400, 1625973300, 1625974200,
      1625975100, 1625976000, 1625976900, 1625977800, 1625978700, 1625979600,
      1625980500, 1625981400, 1625982300, 1625983200, 1625984100, 1625985000,
      1625985900, 1625986800, 1625987700, 1625988600, 1625989500, 1625990400,
      1625991300, 1625992200, 1625993100, 1625994000, 1625994900, 1625995800,
      1625996700, 1625997600, 1625998500, 1625999400, 1626000300, 1626001200,
      1626002100, 1626003000, 1626003900, 1626004800, 1626005700
    ), class = c(
      "POSIXct",
      "POSIXt"
    ), tzone = "EST"), `20817729_2PT_Stationary` = c(
      21.473,
      21.473, 21.473, 21.473, 21.473, 21.473, 21.473, 21.473, 21.473,
      21.473, 21.569, 21.569, 21.569, 21.569, 21.664, 21.664, 21.664,
      21.76, 21.855, 21.951, 22.142, 22.333, 22.621, 22.908, 23.1,
      23.292, 23.388, 23.388, 23.292, 23.292, 23.196, 23.196, 23.292,
      23.292, 23.388, 23.388, 23.388, 23.388, 23.388, 23.388, 23.388,
      23.292, 23.292, 23.196, 23.196, 23.1, 23.1, 23.004, 23.004, 22.908,
      22.812, 22.717, 22.621, 22.621, 22.429, 22.333, 22.238, 22.142,
      22.142, 22.046, 21.951, 21.855, 21.855, 21.76, 21.664, 21.569,
      21.473, 21.473, 21.378, 21.282, 21.282, 21.187, 21.091, 21.091,
      20.996, 20.901, 20.901, 20.805, 20.805, 20.805, 20.71, 20.71,
      20.615, 20.615, 20.615, 20.519, 20.519, 20.519, 20.519, 20.424,
      20.424, 20.424, 20.424, 20.424, 20.329, 20.329, 20.329, 20.329,
      20.329, 20.329, 20.424, 20.424, 20.424, 20.519, 20.519, 20.519,
      20.519, 20.519, 20.519, 20.519, 20.519, 20.519, 20.519, 20.615,
      20.615, 20.71, 20.805, 20.805, 20.901, 20.901, 20.996, 21.091,
      21.187, 21.187, 21.187, 21.187, 21.187, 21.187, 21.187, 21.187,
      21.282, 21.282, 21.187, 21.187, 21.187, 21.187, 21.187, 21.187,
      21.187, 21.187, 21.187, 21.091, 21.091, 21.091, 21.091, 21.091,
      20.996, 20.996, 20.901, 20.901, 20.805, 20.805, 20.71, 20.71,
      20.615, 20.615, 20.615, 20.519, 20.519, 20.519, 20.424, 20.424,
      20.424, 20.329, 20.329, 20.329, 20.234, 20.234, 20.234, 20.138,
      20.138, 20.043, 20.043, 19.948, 19.948, 19.948, 19.853, 19.853,
      19.853, 19.853, 19.853, 19.758, 19.758, 19.758, 19.758, 19.662,
      19.662, 19.567, 19.567, 19.567, 19.472, 19.472, 19.472, 19.472,
      19.472, 19.472, 19.567, 19.567, 19.662, 19.662, 19.758, 19.948,
      20.043, 20.234, 20.424, 20.519, 20.805, 20.996, 21.091, 21.282,
      21.473, 21.76, 21.951, 22.238, 22.525, 22.717, 22.908, 23.1,
      23.388, 23.484, 23.484, 23.484, 23.388, 23.484, 23.484, 23.484,
      23.581, 23.581, 23.484, 23.484, 23.484, 23.388, 23.388, 23.388,
      23.388, 23.388, 23.388, 23.388, 23.388, 23.292, 23.292, 23.196,
      23.1, 23.1, 23.004, 22.908, 22.812, 22.717, 22.717, 22.621, 22.525,
      22.429, 22.429, 22.333, 22.238, 22.238, 22.238, 22.142, 22.142,
      22.046, 22.046, 21.951, 21.855, 21.855, 21.76, 21.76, 21.664,
      21.664, 21.664, 21.664, 21.569, 21.569, 21.569, 21.569, 21.473,
      21.473, 21.473, 21.473, 21.473, 21.473, 21.378, 21.378, 21.378,
      21.378, 21.282, 21.282, 21.282, 21.282, 21.282
    ), `20822229_4PT_Stationary` = c(
      17.855,
      17.855, 17.855, 17.855, 17.855, 17.855, 17.855, 17.855, 17.855,
      17.855, 17.855, 17.855, 17.855, 17.855, 17.95, 17.95, 17.95,
      18.045, 18.045, 18.14, 18.426, 18.616, 18.806, 18.996, 19.092,
      19.282, 19.282, 19.282, 19.187, 19.092, 19.092, 19.092, 19.092,
      19.282, 19.282, 19.187, 19.187, 19.187, 19.282, 19.187, 19.092,
      18.996, 18.996, 18.996, 18.901, 18.901, 18.806, 18.806, 18.711,
      18.711, 18.616, 18.521, 18.521, 18.426, 18.331, 18.236, 18.236,
      18.14, 18.045, 18.045, 17.95, 17.95, 17.855, 17.855, 17.76, 17.665,
      17.665, 17.57, 17.57, 17.475, 17.475, 17.379, 17.379, 17.284,
      17.284, 17.284, 17.189, 17.189, 17.094, 17.094, 17.094, 17.094,
      16.999, 16.999, 16.999, 16.999, 16.999, 16.999, 16.903, 16.903,
      16.903, 16.903, 16.903, 16.903, 16.903, 16.903, 16.999, 16.999,
      16.999, 16.999, 17.094, 17.094, 17.094, 17.189, 17.189, 17.284,
      17.284, 17.379, 17.379, 17.475, 17.475, 17.475, 17.57, 17.665,
      17.665, 17.76, 17.855, 17.855, 17.95, 18.045, 18.14, 18.236,
      18.236, 18.331, 18.331, 18.331, 18.426, 18.521, 18.521, 18.521,
      18.521, 18.616, 18.616, 18.616, 18.616, 18.616, 18.616, 18.616,
      18.616, 18.616, 18.616, 18.616, 18.616, 18.616, 18.521, 18.521,
      18.521, 18.521, 18.521, 18.521, 18.426, 18.426, 18.426, 18.331,
      18.331, 18.331, 18.331, 18.331, 18.331, 18.236, 18.236, 18.236,
      18.236, 18.236, 18.236, 18.236, 18.236, 18.236, 18.236, 18.236,
      18.236, 18.14, 18.14, 18.14, 18.14, 18.045, 18.045, 18.045, 17.95,
      17.95, 17.95, 17.95, 17.95, 17.95, 17.95, 17.855, 17.855, 17.855,
      17.855, 17.855, 17.855, 17.855, 17.855, 17.855, 17.855, 17.95,
      17.95, 17.95, 18.045, 18.14, 18.14, 18.236, 18.331, 18.426, 18.521,
      18.616, 18.711, 18.806, 18.901, 19.092, 19.187, 19.377, 19.567,
      19.758, 19.948, 20.043, 20.329, 20.519, 20.71, 20.71, 20.805,
      20.901, 20.901, 20.901, 20.901, 20.996, 20.901, 20.901, 20.901,
      20.901, 20.901, 20.805, 20.805, 20.805, 20.805, 20.805, 20.805,
      20.805, 20.805, 20.805, 20.805, 20.71, 20.71, 20.615, 20.615,
      20.519, 20.424, 20.424, 20.329, 20.234, 20.138, 20.138, 20.043,
      19.948, 19.853, 19.853, 19.758, 19.662, 19.662, 19.567, 19.567,
      19.472, 19.472, 19.377, 19.282, 19.282, 19.187, 19.187, 19.092,
      19.092, 19.092, 18.996, 18.996, 18.996, 18.901, 18.901, 18.901,
      18.901, 18.806, 18.806, 18.806, 18.806, 18.806, 18.711, 18.711,
      18.711, 18.711, 18.711, 18.616
    ), `20822227_4PT_U_Stationary` = c(
      17.855,
      17.855, 17.855, 17.855, 17.855, 17.855, 17.855, 17.855, 17.855,
      17.855, 17.855, 17.855, 17.855, 17.95, 17.95, 17.95, 17.95, 18.045,
      18.14, 18.236, 18.521, 18.711, 18.996, 19.092, 19.282, 19.282,
      19.282, 19.282, 19.187, 19.092, 19.092, 19.092, 19.187, 19.282,
      19.282, 19.187, 19.187, 19.282, 19.282, 19.187, 19.092, 18.996,
      18.996, 18.996, 18.901, 18.901, 18.806, 18.711, 18.711, 18.711,
      18.616, 18.521, 18.426, 18.426, 18.331, 18.236, 18.236, 18.14,
      18.045, 18.045, 17.95, 17.855, 17.855, 17.76, 17.76, 17.665,
      17.665, 17.57, 17.57, 17.475, 17.475, 17.379, 17.379, 17.284,
      17.284, 17.189, 17.189, 17.189, 17.189, 17.094, 17.094, 17.094,
      17.094, 16.999, 16.999, 16.999, 16.999, 16.999, 16.903, 16.903,
      16.903, 16.903, 16.903, 16.903, 16.903, 16.903, 16.999, 16.999,
      16.999, 16.999, 17.094, 17.094, 17.189, 17.189, 17.284, 17.284,
      17.379, 17.379, 17.475, 17.475, 17.475, 17.475, 17.57, 17.665,
      17.76, 17.76, 17.855, 17.855, 17.95, 18.045, 18.14, 18.236, 18.331,
      18.331, 18.331, 18.426, 18.426, 18.521, 18.521, 18.521, 18.616,
      18.616, 18.616, 18.616, 18.616, 18.616, 18.616, 18.616, 18.616,
      18.616, 18.616, 18.616, 18.616, 18.616, 18.521, 18.521, 18.521,
      18.521, 18.521, 18.521, 18.426, 18.426, 18.426, 18.331, 18.331,
      18.331, 18.331, 18.331, 18.236, 18.236, 18.236, 18.236, 18.236,
      18.236, 18.236, 18.236, 18.236, 18.236, 18.236, 18.236, 18.236,
      18.236, 18.14, 18.14, 18.14, 18.045, 18.045, 18.045, 17.95, 17.95,
      17.95, 17.95, 17.95, 17.95, 17.95, 17.855, 17.855, 17.855, 17.855,
      17.855, 17.855, 17.855, 17.855, 17.855, 17.95, 17.95, 17.95,
      18.045, 18.045, 18.14, 18.236, 18.236, 18.331, 18.426, 18.521,
      18.711, 18.806, 18.806, 18.996, 19.092, 19.282, 19.472, 19.662,
      19.853, 20.043, 20.234, 20.424, 20.615, 20.71, 20.71, 20.901,
      20.901, 20.901, 20.901, 20.901, 20.901, 20.901, 20.901, 20.901,
      20.901, 20.901, 20.901, 20.805, 20.805, 20.805, 20.805, 20.805,
      20.805, 20.805, 20.805, 20.805, 20.71, 20.71, 20.615, 20.615,
      20.519, 20.424, 20.329, 20.329, 20.234, 20.138, 20.043, 20.043,
      19.948, 19.853, 19.758, 19.758, 19.662, 19.662, 19.567, 19.472,
      19.472, 19.377, 19.377, 19.282, 19.282, 19.187, 19.187, 19.092,
      19.092, 19.092, 18.996, 18.996, 18.996, 18.901, 18.901, 18.901,
      18.901, 18.806, 18.806, 18.806, 18.806, 18.806, 18.711, 18.711,
      18.711, 18.711, 18.711, 18.616
    )), row.names = c(NA, 289L), class = "data.frame")
    
    # Calculate sliding mean
    df2 <- df |> 
      mutate(across(-Date_Time_GMT_3, 
                    list(mean_24h = ~slide_dbl(., mean, .before = 192, .complete = TRUE),
                         mean_48h = ~slide_dbl(., mean, .before = 384, .complete = TRUE),
                         mean_72h = ~slide_dbl(., mean, .before = 576, .complete = TRUE)), 
                    .names = "{.col}_{.fn}"))
    
    # Sample result
    glimpse(df2 |> tail())
    
    #> Rows: 6
    #> Columns: 13
    #> $ Date_Time_GMT_3                      <dttm> 2021-07-11 06:00:00, 2021-07-11 …
    #> $ `20817729_2PT_Stationary`            <dbl> 21.378, 21.282, 21.282, 21.282, 2…
    #> $ `20822229_4PT_Stationary`            <dbl> 18.711, 18.711, 18.711, 18.711, 1…
    #> $ `20822227_4PT_U_Stationary`          <dbl> 18.711, 18.711, 18.711, 18.711, 1…
    #> $ `20817729_2PT_Stationary_mean_24h`   <dbl> 21.24636, 21.25081, 21.25525, 21.…
    #> $ `20817729_2PT_Stationary_mean_48h`   <dbl> NA, NA, NA, NA, NA, NA
    #> $ `20817729_2PT_Stationary_mean_72h`   <dbl> NA, NA, NA, NA, NA, NA
    #> $ `20822229_4PT_Stationary_mean_24h`   <dbl> 18.79320, 18.80256, 18.81193, 18.…
    #> $ `20822229_4PT_Stationary_mean_48h`   <dbl> NA, NA, NA, NA, NA, NA
    #> $ `20822229_4PT_Stationary_mean_72h`   <dbl> NA, NA, NA, NA, NA, NA
    #> $ `20822227_4PT_U_Stationary_mean_24h` <dbl> 18.80259, 18.81195, 18.82132, 18.…
    #> $ `20822227_4PT_U_Stationary_mean_48h` <dbl> NA, NA, NA, NA, NA, NA
    #> $ `20822227_4PT_U_Stationary_mean_72h` <dbl> NA, NA, NA, NA, NA, NA
    

    Created on 2022-07-07 by the reprex package (v2.0.1)