Hy Katie, There are many ways to do this. A simple one is to create a vector of the same length than your 'x' vector, containing a group label.
> group=rep(c(1,2,3),times=nr[1,]) Then you can use tapply to apply a function (in this case mean and variance) of the values of x within each group. > means=tapply(x,group,mean) > vars=tapply(x,group,var) > means 1 2 3 -0.14711206 0.28314274 -0.07861427 > vars 1 2 3 1.4584971 0.3611996 0.6300624 Julian kathie wrote: > Dear R users, > > I have 32 observations in data x. After sorting this, I want to compute > means and variances of 3 groups divided by "nr". > > Actually, the number of groups is flexible. Any suggestion will be greatly > appreciated. > > Kathryn Lord > > --------------------------------------------------------------------------- > x=rnorm(32) > y=sort(x) > > nr=matrix(c(12,11,10,10,10,11),2,3) >> nr > [,1] [,2] [,3] > [1,] 12 10 10 -> sum=32 > [2,] 11 10 11 -> sum=32 > > For the 1st row in "nr", index of y = (1,..,12, 13,...,23, 24,...32) > > I want to compute means and variances for 3 groups > > (1st group is 1 through 12; 2nd group is 13-23; 3rd group is 24-32) > > > For the 2nd row in "nr", index of y = (1,..,11, 12,...,22, 23,...32) > > also, I want to compute means and variances for 3 groups > > (1st group is 1 through 11; 2nd group is 12-22; 3rd group is 23-32) > > > ______________________________________________ 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.