Hi Stefano, If you mean from 9am on one day to 9am on the following day, you can do a trick. Simply subtract 9hrs from each timestamp and then you want midnight to midnight for these adjusted times, which you can get using the method you followed.
I googled and found that lubridate::hours() can be used to add or subtract hours from a POSIXct. library(lubridate) day_1 <- as.POSIXct("2020-02-19-00-00", format="%Y-%m-%d-%H-%M", tz="Etc/GMT-1") day_2 <- as.POSIXct("2020-02-24-12-00", format="%Y-%m-%d-%H-%M", tz="Etc/GMT-1") df1 <- data.frame(data_POSIX=seq(day_1, day_2, by="30 min")) df1$hs <- rnorm(nrow(df1), 40, 10) df1$diff[2:nrow(df1)] <- diff(df1$hs) df1$data_POSIXminus9 <- df1$data_POSIX - lubridate::hours(9) df1$dayX <- format(df1$data_POSIXminus9,"%y-%m-%d") df2X <- aggregate(diff ~ dayX, df1, sum) df2X HTH, Eric On Mon, Sep 21, 2020 at 5:30 PM Stefano Sofia <stefano.so...@regione.marche.it> wrote: > > Dear R-list members, > I have semi-hourly snowfall data. > I should sum the semi-hourly increments (only the positive ones, but this is > not described in my example) day by day, not from 00 to 24 but from 9 to 9. > > I am able to use the diff function, create a list of days and use the > function aggregate, but it works only from 0 to 24. Any suggestion for an > efficient way to do it? > Here my code: > day_1 <- as.POSIXct("2020-02-19-00-00", format="%Y-%m-%d-%H-%M", > tz="Etc/GMT-1") > day_2 <- as.POSIXct("2020-02-24-12-00", format="%Y-%m-%d-%H-%M", > tz="Etc/GMT-1") > df1 <- data.frame(data_POSIX=seq(day_1, day_2, by="30 min")) > df1$hs <- rnorm(nrows(df1), 40, 10) > df1$diff[2:nrow(df1)] <- diff(df1$hs) > df1$day <- format(df$data_POSIX,"%y-%m-%d") > df2 <- aggregate(diff ~ day, df, sum) > > Thank you for your help > Stefano > > (oo) > --oOO--( )--OOo---------------- > Stefano Sofia PhD > Civil Protection - Marche Region > Meteo Section > Snow Section > Via del Colle Ameno 5 > 60126 Torrette di Ancona, Ancona > Uff: 071 806 7743 > E-mail: stefano.so...@regione.marche.it > ---Oo---------oO---------------- > > ________________________________ > > AVVISO IMPORTANTE: Questo messaggio di posta elettronica può contenere > informazioni confidenziali, pertanto è destinato solo a persone autorizzate > alla ricezione. I messaggi di posta elettronica per i client di Regione > Marche possono contenere informazioni confidenziali e con privilegi legali. > Se non si è il destinatario specificato, non leggere, copiare, inoltrare o > archiviare questo messaggio. Se si è ricevuto questo messaggio per errore, > inoltrarlo al mittente ed eliminarlo completamente dal sistema del proprio > computer. Ai sensi dell’art. 6 della DGR n. 1394/2008 si segnala che, in caso > di necessità ed urgenza, la risposta al presente messaggio di posta > elettronica può essere visionata da persone estranee al destinatario. > IMPORTANT NOTICE: This e-mail message is intended to be received only by > persons entitled to receive the confidential information it may contain. > E-mail messages to clients of Regione Marche may contain information that is > confidential and legally privileged. Please do not read, copy, forward, or > store this message unless you are an intended recipient of it. If you have > received this message in error, please forward it to the sender and delete it > completely from your computer system. > > -- > Questo messaggio stato analizzato da Libra ESVA ed risultato non infetto. > This message was scanned by Libra ESVA and is believed to be clean. > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.