Hi aggregate is another option.
aggregate(df[, 2:4], list(df$Year), sum) Cheers Petr > -----Original Message----- > From: R-help <r-help-boun...@r-project.org> On Behalf Of > p...@philipsmith.ca > Sent: Monday, March 4, 2019 4:15 AM > To: r-help@r-project.org > Subject: [R] Tidyverse data frame conversion from monthly to annual > > I have a data frame in which the first column is a sequence of monthly dates > and the other columns are variables. There are a great many variables. I want > to create another data frame similar to the first one, but with annual values > instead of monthly, created by summing the months within each year. > > I am able to do this as shown in this reprex: > > library(tidyverse) > REF_DATE <- seq(as.Date("2000/1/1"),by="month",length.out=36) > set.seed(57) > df <- data.frame(REF_DATE, > x=sample(1:100,size=36), > y=sample(1:100,size=36), > z=sample(1:100,size=36), > Year=year(REF_DATE)) > df1 <- df %>% > group_by(Year) %>% > summarise(x_a=sum(x),y_a=sum(y),z_a=sum(z)) %>% > ungroup() > > However, while this works for the simple case with only three variables, I > actually have many more than three, so I am looking for a more general > approach. I have no clue as to how to proceed. Any advice will be much > appreciated. > > Philip > > ______________________________________________ > 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. Osobní údaje: Informace o zpracování a ochraně osobních údajů obchodních partnerů PRECHEZA a.s. jsou zveřejněny na: https://www.precheza.cz/zasady-ochrany-osobnich-udaju/ | Information about processing and protection of business partner’s personal data are available on website: https://www.precheza.cz/en/personal-data-protection-principles/ Důvěrnost: Tento e-mail a jakékoliv k němu připojené dokumenty jsou důvěrné a podléhají tomuto právně závaznému prohláąení o vyloučení odpovědnosti: https://www.precheza.cz/01-dovetek/ | This email and any documents attached to it may be confidential and are subject to the legally binding disclaimer: https://www.precheza.cz/en/01-disclaimer/ ______________________________________________ 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.