[R] group by in data.frame

Ivan Calandra ivan.calandra at uni-hamburg.de
Fri Feb 25 16:42:23 CET 2011


Ok, now I think I've understood, but I'm not sure since I think that my 
ave() solution does work. Although, I though you have several numerical 
variables and 1 factor; it is the opposite but it is still possible:

c3_mean <- ave(x[,3], list(x[,1],x[,2]), FUN=mean)  #note that values 
are different because of rnorm()
cbind(x[,1:2], c3_mean)

Is it what you want?

Ivan


Le 2/25/2011 16:14, zem a écrit :
> 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
>
> Ivan, many thanks for your support and quik responses! :)
>

-- 
Ivan CALANDRA
PhD Student
University of Hamburg
Biozentrum Grindel und Zoologisches Museum
Abt. Säugetiere
Martin-Luther-King-Platz 3
D-20146 Hamburg, GERMANY
+49(0)40 42838 6231
ivan.calandra at uni-hamburg.de

**********
http://www.for771.uni-bonn.de
http://webapp5.rrz.uni-hamburg.de/mammals/eng/1525_8_1.php



More information about the R-help mailing list