Output table from for loop
I'd do it like this:
nums = 10:30
OutList <- vector("list", length(nums)) # The key is that you need to
return in a list: your loop iterations were all operating on the same
object OutMat and accessing different elements thereof instead of
creating new objects
for(cn in seq_along(nums)) OutList[[i]] <- Counts[Counts$var < nums[cn], ]
Michael
On Wed, Dec 7, 2011 at 10:39 AM, bmoran <bruce.moran at teagasc.ie> wrote:
Hi, this might be basic but can't get it to work and it is hampering my R
usage:
#the loop is checking variance of rows, and cutting out rows with
var>numVec[i]
#I define outMat as object names I want to output to (does this make sense?
how else
#can I define sequential numbered output?)
#numVec is numbers I use in the loop
head(Counts)
? ? ? ? ? ? AN1 ?AN2 ? AN3 ? AN4 ? var
GENE1 ? ? ?99 ? ? 0 ? ? 6 ? ? ?0 ? ? ?2360
GENE2 ? ?183 ? 136 ? 137 ? ?160 ? 496
GENE3 ? ?301 ? 199 ? 233 ? ?187 ? 1856
outMat<-paste("NewCounts", 1:5, sep="_") #names of
numVec<-c(100,200,500,1000,1500)
cutGenes<-function(x) {
? ? ? ?for (i in 1:5) {
? ? ? ? ? ? ? ?keep<- Counts$var<numVec[i] #gives logical vector
? ? ? ? ? ? ? ?keep<-Counts[keep=="TRUE",] #apply logical vector to count data (table)
? ? ? ? ? ? ? ?outMat[i]<-keep
}
}
#this all works fine if I define 'outMat[i]' as 'outMat' but then I can't
use the loop! The loop seems to make #outMat[i] take the i element of 'keep'
and only stores this.
#Help much appreciated, sorry if it is VERY basic, just a head scratcher for
me.
Thanks,
Bruce.
--
View this message in context: http://r.789695.n4.nabble.com/Output-table-from-for-loop-tp4169386p4169386.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________ 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.