[R] group by in data.frame
David Winsemius
dwinsemius at comcast.net
Fri Feb 25 16:45:16 CET 2011
On Feb 25, 2011, at 10:14 AM, zem wrote:
>
> Yeah, you are right
> i want to post an short example what i want to do .. and in the
> meantime i
> solved the problem ...
> but here is:
> i have something like this dataframe:
> c1<-c(1,2,3,2,2,3,1,2,2,2)
> c2<-c(5,6,7,7,5,7,5,7,6,6)
> c3<-rnorm(10)
> x<-cbind(c1,c2,c3)
>> x
> c1 c2 c3
> [1,] 1 5 0.08279036
> [2,] 2 6 0.59135988
> [3,] 3 7 1.45520468
> [4,] 2 7 -1.70094640
> [5,] 2 5 0.13065228
> [6,] 3 7 -1.12080980
> [7,] 1 5 0.42779354
> [8,] 2 7 -1.53111972
> [9,] 2 6 0.29299987
> [10,] 2 6 -0.01602095
>
> #whith aggregate i receive this:
>> aggregate(x[,3],list(x[,1],x[,2]),mean)
> Group.1 Group.2 x
> 1 1 5 0.2552920
> 2 2 5 0.1306523
> 3 2 6 0.2894463
> 4 2 7 -1.6160331
> 5 3 7 0.1671974
>
>
> and the problem was that i was grouping by 2 columns, so i couldn't
> copy the
> result to x.
>
> the solution was i made another column with paste(x[,1],x[,2],sep="_")
> and then i used the solution from this link:
> http://tolstoy.newcastle.edu.au/R/help/06/07/30184.html
> so i solved my problem
Right. That works and has the virtue that it is reasonably clear what
is going on. Another approach, possibly even more clear and even more
R-ish, is to use the interaction() function.
> aggregate(x[,3], list(interaction(x[,1],x[,2]) ), mean)
Group.1 x
1 1.5 -0.658932424
2 2.5 0.824756795
3 2.6 0.640471421
4 2.7 -0.008519716
5 3.7 -0.053233855
>
> Ivan, many thanks for your support and quik responses! :)
>
> --
> View this message in context: http://r.789695.n4.nabble.com/group-by-in-data-frame-tp3324240p3324608.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at 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.
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list