Literal translation... aggregate( mydf$value , mydf[ , "year_month", drop=FALSE ] , function( x ) if ( all( is.na( x ) ) ) NA else sum( x, na.rm = TRUE ) )
On September 4, 2021 9:06:57 AM PDT, Stefano Sofia <stefano.so...@regione.marche.it> wrote: >Dear R-list users, >I encountered a silly problem using aggregate, but I am not able to get rid of >it. >I read the manual quite carefully, probaby not enough. >Suppose I have the following data frame: > >mydf <- data.frame(year_month=rep(c("2003-12", "2004-12", "2005-12"), 3), >station_number=c(rep(1818,3), rep(1819,3), rep(1820,3)), value=c(NA, NA, 20, >NA, NA, 40, NA, 15, 50)) > >I want aggregate the column value by the column year_month, but I need to >preserve rows with NA when all data are NA: > >aggregate(mydf$value, list(mydf$year_month), sum) gives >1 2003-12 NA >2 2004-12 NA >3 2005-12 110 > >aggregate(mydf$value, list(mydf$year_month), sum, na.rm=TRUE) gives >1 2003-12 0 >2 2004-12 15 >3 2005-12 110 > >but I need >1 2003-12 NA >2 2004-12 15 >3 2005-12 110 > >How can I get it? >Thank you for your attention and your help >Stefano > > > (oo) >--oOO--( )--OOo-------------------------------------- >Stefano Sofia PhD >Civil Protection - Marche Region - Italy >Meteo Section >Snow Section >Via del Colle Ameno 5 >60126 Torrette di Ancona, Ancona (AN) >Uff: +39 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 Libraesva ESG ed risultato non infetto. >This message was scanned by Libraesva ESG 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. -- 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.