Hi Although you got several answers, simple aggregate was omitted.
> with(dat, aggregate(wt, list(Year=Year, Sex=Sex), mean)) Year Sex x 1 2001 F 12.00000 2 2002 F 13.33333 3 2003 F 12.00000 4 2001 M 15.00000 5 2002 M 16.33333 6 2003 M 15.00000 you can reshape the result > library(reshape2) Warning message: package 'reshape2' was built under R version 4.0.4 > dcast(res, Year~Sex) Using x as value column: use value.var to override. Year F M 1 2001 12.00000 15.00000 2 2002 13.33333 16.33333 3 2003 12.00000 15.00000 Cheers Petr > -----Original Message----- > From: R-help <r-help-boun...@r-project.org> On Behalf Of Val > Sent: Monday, November 1, 2021 10:08 PM > To: r-help@R-project.org (r-help@r-project.org) <r-help@r-project.org> > Subject: [R] by group > > Hi All, > > How can I generate mean by group. The sample data looks like as follow, > dat<-read.table(text="Year Sex wt > 2001 M 15 > 2001 M 14 > 2001 M 16 > 2001 F 12 > 2001 F 11 > 2001 F 13 > 2002 M 14 > 2002 M 18 > 2002 M 17 > 2002 F 11 > 2002 F 15 > 2002 F 14 > 2003 M 18 > 2003 M 13 > 2003 M 14 > 2003 F 15 > 2003 F 10 > 2003 F 11 ",header=TRUE) > > The desired output is, > M F > 2001 15 12 > 2002 16.33 13.33 > 2003 15 12 > > Thank you, > > ______________________________________________ > 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.