How to repeat 2 functions in succession for 400 times? (microarray data)
Hi David,
Yes.
Both are similar in speed.
set.seed(48)
?system.time({fourPGCs <- replicate(400, {? permutation<-sample(mydata4)
?PGC <- (rowMeans(permutation[ ,1:27]) -
???????????????? rowMeans( permutation[ ,28:38]))/
???????????????? (rowSds( permutation [,1:27]) + rowSds( permutation [,28:38]))
?????????????????????????? }
?)})
?# user? system elapsed
?# 3.712?? 0.000?? 3.723
?set.seed(48)
?system.time({res<-do.call(cbind,lapply(1:400, function(i) {permutation<-sample(mydata4); (rowMeans(permutation[,1:27])-rowMeans(permutation[,28:38]))/(rowSds(permutation[,1:27])+rowSds(permutation[,28:38]))} )) })
# user? system elapsed
#? 3.624?? 0.000?? 3.632
?identical(fourPGCs,res)
#[1] TRUE
A.K.
----- Original Message -----
From: David Winsemius <dwinsemius at comcast.net>
To: arun <smartpink111 at yahoo.com>
Cc: R help <r-help at r-project.org>
Sent: Saturday, May 11, 2013 2:31 PM
Subject: Re: [R] How to repeat 2 functions in succession for 400 times? (microarray data)
On May 11, 2013, at 9:21 AM, arun wrote:
Hi,
May be this helps:
? set.seed(24)
? mydata4<- as.data.frame(matrix(sample(1:100,10*38,replace=TRUE),ncol=38))
? dim(mydata4)
#[1] 10 38
? library(matrixStats)
res<-do.call(cbind,lapply(1:400, function(i) {permutation<-sample(mydata4); (rowMeans(permutation[,1:27])-rowMeans(permutation[,28:38]))/(rowSds(permutation[,1:27])+rowSds(permutation[,28:38]))} ))
? dim(res)
#[1]? 10 400
A.K.
I want to do permutation test and then get a PGC score 400 times on mydata4 (microarray data) I use 2 functions as below: 1. permutation<-sample(mydata4) 2. PGC <- (rowMeans(permutation[ ,1:27]) - rowMeans(permutation[
,28:38]))/ (rowSds(permutation [,1:27]) + rowSds(permutation [,28:38]))
What should I do to repeat these 2 functions in succession for
400 times and combine (cbind?) the 400 PGC score for the 7129 genes in one file?
Couldn't that just be:
fourPGCs <- replicate(400, {? permutation<-sample(mydata4)
PGC <- (rowMeans(permutation[ ,1:27]) -
? ? ? ? ? ? ? ? rowMeans( permutation[ ,28:38]))/
? ? ? ? ? ? ? ? (rowSds( permutation [,1:27]) + rowSds( permutation [,28:38]))
? ? ? ? ? ? ? ? ? ? ? ? ? }
--
David Winsemius
Alameda, CA, USA