Another possibility is to transpose and use functions that assume the grouping is by rows, such as summaryBy in the doBy library. If you can easily work with your data this way, the code might be more clear.
> library ( doBy ) > databyrows <- rbind ( c ( 2, 2, 3, 4, 4, 4, 5, 5, 6), c(1, 1, 2, 1, 3, 3, 2, > 1, 1) ) > databyrows [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [1,] 2 2 3 4 4 4 5 5 6 [2,] 1 1 2 1 3 3 2 1 1 > databycols <- t ( databyrows) > colnames ( databycols ) <- c("x", "y") > databycols.df <- data.frame (databycols) > # (summaryBy needs a data frame) > # The FUN argument is set explicitly to its default for clarity. > databycols.df x y 1 2 1 2 2 1 3 3 2 4 4 1 5 4 3 6 4 3 7 5 2 8 5 1 9 6 1 > sumbycols.df <- summaryBy ( y ~ x, data = databycols.df , FUN = sum, > keep.names = TRUE ) > sumbycols.df x y 1 2 2 2 3 2 3 4 7 4 5 3 5 6 1 > sumbyrows.df <- t ( sumbycols.df ) > sumbyrows.df 1 2 3 4 5 x 2 3 4 5 6 y 2 2 7 3 1 > ----- Original message ----- From: "Eik Vettorazzi" <e.vettora...@uke.uni-hamburg.de> To: "Hans-Henning Gabriel" <hanshenning.gabr...@gmail.com> Cc: r-help@r-project.org Date: Tue, 07 Apr 2009 17:36:45 +0200 Subject: Re: [R] group by-like statement for 2-row matrix see ?aggregate m<-rbind(sample(2:6,9,replace=T),sample(1:3,9,replace=T)) aggregate(m[2,],by=list(m[1,]),sum) Hans-Henning Gabriel schrieb: > Hi, > > my problem is as follows: > > I have a matrix of two rows like this: > > 2 2 3 4 4 4 5 5 6 > 1 1 2 1 3 3 2 1 1 > > Can I apply something like "group by" in sql? What I want to achieve > is the some of second row for each unique entry of first row: > > 2 -> 2 (=1+1) > 3 -> 2 > 4 -> 7 (=1+3+3) > 5 -> 3 (=2+1) > 6 -> 1 > > Thanks!! > Henning > > ______________________________________________ > R-help@r-project.org mailing list > 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. -- Eik Vettorazzi Institut für Medizinische Biometrie und Epidemiologie Universitätsklinikum Hamburg-Eppendorf Martinistr. 52 20246 Hamburg T ++49/40/42803-8243 F ++49/40/42803-7790 ______________________________________________ R-help@r-project.org mailing list 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 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.