Hi Stefano, I read in your date-time as two separate fields for convenience. You can split your single field at the space to get the same result.
ssdf<-read.table(text="date_POSIX time_POSIX vmax 2018-02-01 00:00:00 27 2018-02-01 00:10:00 41 2018-02-01 00:20:00 46 2018-02-01 00:30:00 39 2018-02-01 00:40:00 34 2018-02-01 00:50:00 32", header=TRUE,stringsAsFactors=FALSE) # get the time of day as seconds from the time field ssdf$seconds<-as.numeric(strptime(ssdf$time_POSIX,"%H:%M:%S")) # subtract whatever current date strptime guesses for the date ssdf$seconds<-ssdf$seconds-min(ssdf$seconds) # create an AM/PM variable ssdf$ampm<-ifelse(ssdf$seconds > 0 & ssdf$seconds <= 1800,"am","pm") means<-aggregate(vmax~ampm,ssdf,mean) Jim On Thu, Dec 3, 2020 at 4:55 AM Stefano Sofia <stefano.so...@regione.marche.it> wrote: > > Dear list users, > I have wind data with frequency of 10 minutes (three years data). For > simplicity let me use only max wind speed. > I need to reduce the frequency to 30 minutes, at 00 (taking the mean of > data at 40, 50 and 00 minutes) and at 30 (taking the mean of data at 10, 20 > and 30 minutes) of each hour. > > The simple code here reported works well, but the column "interval" groups > data forward, not backward: > > init_day <- as.POSIXct("2018-02-01-00-00", format="%Y-%m-%d-%H-%M", > tz="Etc/GMT-1") > fin_day <- as.POSIXct("2018-02-01-02-00", format="%Y-%m-%d-%H-%M", > tz="Etc/GMT-1") > mydf <- data.frame(data_POSIX=seq(init_day, fin_day, by="10 mins")) > mydf$vmax <- round(rnorm(13, 35, 10)) > mydf$interval <- cut(mydf$data_POSIX, , breaks="30 min") > means <- aggregate(vmax ~ interval, mydf, mean) > > data_POSIX vmax interval > 1 2018-02-01 00:00:00 27 2018-02-01 00:00:00 > 2 2018-02-01 00:10:00 41 2018-02-01 00:00:00 > 3 2018-02-01 00:20:00 46 2018-02-01 00:00:00 > 4 2018-02-01 00:30:00 39 2018-02-01 00:30:00 > 5 2018-02-01 00:40:00 34 2018-02-01 00:30:00 > 6 2018-02-01 00:50:00 32 2018-02-01 00:30:00 > ... > > I should work with > > data_POSIX vmax interval > 1 2018-02-01 00:00:00 27 2018-02-01 00:00:00 > 2 2018-02-01 00:10:00 41 2018-02-01 00:30:00 > 3 2018-02-01 00:20:00 46 2018-02-01 00:30:00 > 4 2018-02-01 00:30:00 39 2018-02-01 00:30:00 > 5 2018-02-01 00:40:00 34 2018-02-01 00:00:00 > 6 2018-02-01 00:50:00 32 2018-02-01 00:00:00 > ... > > > Is there a way to modify this code to groupp data correctly? (I would prefer > using only the base package) > > 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.