[R] Averaging over columns
Duncan Murdoch
murdoch at stats.uwo.ca
Mon Mar 6 13:28:07 CET 2006
On 3/6/2006 7:13 AM, michael watson (IAH-C) wrote:
> Hi
>
> I've been reading the help for by and aggregate but can't get my head
> round how to do this.
>
> I have a data frame - the first three columns are replicate
> measurements, then the next 3 are replicates etc up to 36 (so 12
> variables with 3 replicate measurements each). I want to compute the
> mean for each of the 12 variables, so that, for each row, I have 12
> means.
>
> A grouping variable across columns can easily be created by
> rep(1:12,each=3), but I can't figure out which function to use to get R
> to calculate the means I want.
I'd think the easiest thing is to reshape the dataset so you have the
variables entirely in their own columns, then just apply mean to the
columns. (Add a new column for replicate number so you don't lose that
information.)
If you want to avoid that, then code like this will do your calculation,
but it looks ugly:
means <- numeric(12)
for (i in 0:11) {
means[i] <- mean(mydata[,3*i + 1:3])
}
You could also put something together using tapply and your grouping
variable, but I think the two solutions above will be easiest to read.
Duncan Murdoch
More information about the R-help
mailing list