Many thanks for your most helpful answers. Tony Lancaster
On 18 November 2010 20:28, David Winsemius <dwinsem...@comcast.net> wrote: > > On Nov 18, 2010, at 1:23 PM, Henrique Dallazuanna wrote: > > Try this also: >> >> x$x - ave(x$x, x$f) >> > > Could also use scale for only its centering capacities: > > unlist( > tapply(fx$x, fx$f, scale, scale=FALSE) # default for center == TRUE > ) > 11 12 21 22 23 > 1 -1 -2 2 0 > > ... but looking at the code for ave and for tapply makes me think ave would > win in a foot race. scale() has other capacities that make its availability > useful. > > -- > David. > > > >> On Thu, Nov 18, 2010 at 12:02 PM, Lancaster, Anthony < >> anthony_lancas...@brown.edu> wrote: >> >> Hi, >>> I'd appreciate help with this. I have a data matrix with one column, >>> called >>> f in the example below, a factor. I'd like to subtract the means from >>> each >>> of >>> other columns for each level of the factor. That is, in the example, to >>> go >>> from the first matrix below to the second. I know SWEEP will take out >>> means, >>> but I want to do this for each level of the factor. >>> f x >>> 1 2 >>> 1 0 >>> 2 0 >>> 2 4 >>> 2 2 >>> >>> f xnew >>> 1 1 >>> 1 -1 >>> 2 -2 >>> 2 2 >>> 2 0 >>> Thanks >>> >>> [[alternative HTML version deleted]] >>> >>> > David Winsemius, MD > West Hartford, CT > > [[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.