That works a treat Thierry, thanks! I wasn't aware of the plyr package but I like what it does- I'll put it to use work in the future.
Regards John -----Original Message----- From: ONKELINX, Thierry [mailto:thierry.onkel...@inbo.be] Sent: Monday, 3 October 2011 6:36 PM To: Morrongiello, John (CMAR, Hobart); r-help@r-project.org Subject: RE: [R] new standardised variable based on group membership Dear John, You need to combine scale with a grouping function. data(Orange) library(plyr) Orange <- ddply(Orange, .(Tree), function(x){ x$ddplyAge <- scale(x$age)[, 1] x }) Orange$aveAge <- ave(Orange$age, by = Orange$Tree, FUN = scale) all.equal(Orange$ddplyAge, Orange$aveAge) Best regards, Thierry > -----Oorspronkelijk bericht----- > Van: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] > Namens john.morrongie...@csiro.au > Verzonden: maandag 3 oktober 2011 7:34 > Aan: r-help@r-project.org > Onderwerp: [R] new standardised variable based on group membership > > Hi > I have a data comprised of repeated measures of growth (5-15 records per > individual) for 580 fish (similar to Orange dataset from nlme library). I > would like > to standardise these growth measures (yi – ŷ/sd) using mean and standard > deviation unique to each fish. Can someone suggest a function that would help > me do this? I’ve had a look at scale and sweep but can’t find a worked example > that does what I’m after > > Cheers > > John > > > [[alternative HTML version deleted]] ______________________________________________ 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.