The base R as.difftime function is perfectly usable to create this offset without pulling in lubridate.
On September 21, 2020 8:06:51 AM PDT, Eric Berger <ericjber...@gmail.com> wrote: >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. -- Sent from my phone. Please excuse my brevity. ______________________________________________ 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.