Dear Amit,
The following should get you started. What I'm doing is creating an
identifiers (g) with the "names" of the columns you want to group for and
then use a combination of apply() and tapply() to get the mean for each row
in the levels of g. In your case, you have more columns than I have in my
example, but with slightly modifications you can adapt the code below to
your needs.

See ?apply and ?rep for more information.

HTH,

Jorge


# Some data
set.seed(123)
X <- matrix(rnorm(100), ncol=10)
colnames(X) <- paste('x',1:10,sep="")
rownames(X) <- paste('sample_',1:10,sep="")

# Defining the groups using seq()
g <- rep(1:(ncol(X)/2), each = 2 )

# Calculating the means
res <- t( apply(X, 1, tapply, g, mean) )
res

# res[1,1] is the mean for X[1, 1:2]
mean(X[1,1:2])
# [1] 0.2408457


On Fri, May 15, 2009 at 8:17 AM, Amit Patel <amitrh...@yahoo.co.uk> wrote:

>
> Hi
> I am trying to create a loop which averages replicates in my data.
> The original data has many rows. and consists of 40 column zz[,2:41] plus
> row headings in zz[,1]
> I am trying to average each set of values (i.e. zz[1,2:3] averaged and
> placed in average_value[1,2] and so on.
> below is my script but it seems to be stuck in an endless loop
> Any suggestions??
>
> for (i in 1:length(average_value[,1])) {
> average_value[i] <- i^100; print(average_value[i])
>
> #calculates Meanss
> #Sample A
> average_value[i,2] <- rowMeans(zz[i,2:3])
> average_value[i,3] <- rowMeans(zz[i,4:5])
> average_value[i,4] <- rowMeans(zz[i,6:7])
> average_value[i,5] <- rowMeans(zz[i,8:9])
> average_value[i,6] <- rowMeans(zz[i,10:11])
>
> #Sample B
> average_value[i,7] <- rowMeans(zz[i,12:13])
> average_value[i,8] <- rowMeans(zz[i,14:15])
> average_value[i,9] <- rowMeans(zz[i,16:17])
> average_value[i,10] <- rowMeans(zz[i,18:19])
> average_value[i,11] <- rowMeans(zz[i,20:21])
>
> #Sample C
> average_value[i,12] <- rowMeans(zz[i,22:23])
> average_value[i,13] <- rowMeans(zz[i,24:25])
> average_value[i,14] <- rowMeans(zz[i,26:27])
> average_value[i,15] <- rowMeans(zz[i,28:29])
> average_value[i,16] <- rowMeans(zz[i,30:31])
>
> #Sample D
> average_value[i,17] <- rowMeans(zz[i,32:33])
> average_value[i,18] <- rowMeans(zz[i,34:35])
> average_value[i,19] <- rowMeans(zz[i,36:37])
> average_value[i,20] <- rowMeans(zz[i,38:39])
> average_value[i,21] <- rowMeans(zz[i,40:41])
>  }
>
>
> thanks
>
>
>
>
> ______________________________________________
> 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.
>

        [[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.

Reply via email to