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
I'm not quite sure what you want to do, but this might help:
d=data.frame(replicate(40, rnorm(20)))
d$sample=rep(c('a','b','c','d'),each=5)
lib(doBy)
summaryBy(.~sample,da=d)
David Freedman
Amit Patel-7 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 at 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.
>
>
--
View this message in context:
http://www.nabble.com/Help-with-loops-tp23558647p23560599.html
Sent from the R help mailing list archive at Nabble.com.
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 <amitrhelp@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]]