New R user here looking for guidance. I am working with a 15-minute data set and looking to parse out the following by one variable (buildings in my case) for each day of the year: (1) lowest mean of "value" for n consecutive rows (preferably 2 or 3 hours worth) (2) standard deviation of the same period
Sample df:
    variable    year month day hr min   date     value
    building_a  2018    6   2   0   0   6/2/2018    19
    building_a  2018    6   2   0   15  6/2/2018    19
    building_a  2018    6   2   0   30  6/2/2018    19
    building_a  2018    6   2   0   45  6/2/2018    17
    building_a  2018    6   2   1   0   6/2/2018    17
    building_a  2018    6   2   1   15  6/2/2018    15
    building_a  2018    6   2   1   30  6/2/2018    15
    building_a  2018    6   2   1   45  6/2/2018    14
    building_a  2018    6   2   2   0   6/2/2018    14
    building_a  2018    6   2   2   15  6/2/2018    13
    building_a  2018    6   2   2   30  6/2/2018    13
    building_a  2018    6   2   2   45  6/2/2018    13
    building_a  2018    6   2   3   0   6/2/2018    12
    building_a  2018    6   2   3   15  6/2/2018    14
    building_a  2018    6   2   3   30  6/2/2018    13
    building_a  2018    6   2   3   45  6/2/2018    13
    building_b  2018    6   2   0   0   6/2/2018    37
    building_b  2018    6   2   0   15  6/2/2018    41
    building_b  2018    6   2   0   30  6/2/2018    38
    building_b  2018    6   2   0   45  6/2/2018    39
    building_b  2018    6   2   1   0   6/2/2018    37
    building_b  2018    6   2   1   15  6/2/2018    36
    building_b  2018    6   2   1   30  6/2/2018    34
    building_b  2018    6   2   1   45  6/2/2018    34
    building_b  2018    6   2   2   0   6/2/2018    35
    building_b  2018    6   2   2   15  6/2/2018    35
    building_b  2018    6   2   2   30  6/2/2018    29
    building_b  2018    6   2   2   45  6/2/2018    32
    building_b  2018    6   2   3   0   6/2/2018    30
    building_b  2018    6   2   3   15  6/2/2018    33
    building_b  2018    6   2   3   30  6/2/2018    30
    building_b  2018    6   2   3   45  6/2/2018    32
I've been able to perform this for one-hour segments using the following approach, but cannot figure out how to adapt this to a larger window (e.g., lowest 135 minute mean instead of 60 min).
    tmp <- aggregate(value~variable+date+hour, df, 
                               function(x) 
                                   c(mean = mean(x), sd = sd(x)))
    tmp2 <- do.call("data.frame",tmp)
    tmp2$value.mean <- as.numeric(tmp2$value.mean)
    tmp2$value.sd <- as.numeric(tmp2$value.sd)
    tmp2_flat <- tmp2 %>%
      group_by(variable, date) %>%
      filter(value.mean == min(value.mean)) %>%
      arrange(variable, date, value.sd) %>%
      slice(1)
Thank you in advance for any advice
 
    