Tena koe

Try something along the following lines:

chrData <- vector('list', 22)
names(chrData) <- paste('chr', 1:22, sep='')

for (i in 1:length(chrData))
{
  chrData[[i]] <- read.table(file=paste('chr', i, '.out.txt', sep=''), header=F)
  ...
}

HTH ....

Peter Alspach

> -----Original Message-----
> From: r-help-boun...@r-project.org [mailto:r-help-bounces@r-
> project.org] On Behalf Of a217
> Sent: Wednesday, 10 August 2011 4:32 p.m.
> To: r-help@r-project.org
> Subject: [R] Loops for repetitive task
> 
> Hello,
> 
> I have an R script that I use as a template to perform a task for
> multiple
> files (in this case, multiple chromosomes).
> 
> What I would like to do is to utilize a simple loop to parse through
> each
> chromosome number so that I don't have to type the same code over and
> over
> again in the R console.
> 
> I've tried using:
> 
> for(i in 1:22){
> etc..
> }
> 
> and replacing each chromosome number with [[i]], but that did not seem
> to
> work.
> 
> Below is the script I have. Basically everywhere you see a '2' I would
> like
> there to be an 'i' so that the script can be applied in a general
> sense.
> ################################Code###############################
> 
> chr2.data<-read.table(file="chr2.out.txt", header=F)
> colnames(chr2.data)<-
> c("chr","start","end","base1","base2","totalreads","methylation","stran
> d")
> splc2<-split(chr2.data, paste(chr2.data$chr))
> chr2.df<-as.data.frame(t(sapply(splc2, function(x)
> list(TR=NROW(x[['totalreads']]),    RG1=sum(x[['totalreads']]>=1),
> percent=(NROW(x[['totalreads']]>=1)/sum(x[['totalreads']]))))))
> chr2.df.summ<-as.data.frame(t(sapply(splc2, function(x)
> summary(x$methylation))))
> chr2.summ<-cbind(chr2.df,chr2.df.summ)
> 
> ##################################################################
> 
> 
> Here are some sample input files in case you'd like to test the code:
> ##########
> # chr1.out.txt
> ##########
> chr1  100     159     104     104     1       0.05    +
> chr1  100     159     145     145     1       0.04    +
> chr1  200     260     205     205     1       0.12    +
> chr1  500     750     600     600     1       0.09    +
> 
> ##########
> # chr2.out.txt
> ##########
> chr2  100     200     105     105     1       0.03    +
> chr2  100     200     110     110     1       0.08    +
> chr2  300     400     350     350     0       0       +
> 
> 
> The code works perfectly fine just typing everything out by hand, but
> that
> is very inefficient given that there are 24 chromosomes for each
> dataset. I
> am just looking for any suggestions as to how I can write a general
> version
> of this code.
> 
> 
> --
> View this message in context: http://r.789695.n4.nabble.com/Loops-for-
> repetitive-task-tp3732022p3732022.html
> Sent from the R help mailing list archive at Nabble.com.
> 
> ______________________________________________
> 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.

The contents of this e-mail are confidential and may be subject to legal 
privilege.
 If you are not the intended recipient you must not use, disseminate, 
distribute or
 reproduce all or any part of this e-mail or attachments.  If you have received 
this
 e-mail in error, please notify the sender and delete all material pertaining 
to this
 e-mail.  Any opinion or views expressed in this e-mail are those of the 
individual
 sender and may not represent those of The New Zealand Institute for Plant and
 Food Research Limited.

______________________________________________
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