On 12-07-31 02:38 PM, Claudia Penaloza wrote: > Thank you very much Rui (and Eloi for your input)... this is (the very > simplified version of) what I will end up using: Could we get the extended version ? Because right now, I don't know why you need such complicated code that can be done in 1 line. > J <- 10 > N <- 10 > y <- matrix(0,N,J) > cols <- rep(c(TRUE, TRUE, FALSE, FALSE), 3)[seq_len(J)] > for(j in which(cols)){ > for (q in 1:N){ > if(j %% 2){ > y[q,j]=1 > }else{y[q,j]=2} > } > } > for(j in which(!cols)){ > for (q in 1:N){ > if(j %% 2){ > y[q,j]="A" > }else{y[q,j]="B"} > } > } > There is no need for a double loop (on N) :
J <- 10 N <- 10 y <- matrix(0,N,J) cols <- rep(c(TRUE, TRUE, FALSE, FALSE), 3)[seq_len(J)] for(j in which(cols)){ if(j %% 2){ y[,j]=1 }else{y[,j]=2} } for(j in which(!cols)){ if(j %% 2){ y[,j]="A" }else{y[,j]="B"} } if you really wants to use this code. Cheers, Eloi > Cheers, > Claudia > On Mon, Jul 30, 2012 at 5:38 PM, Mercier Eloi <emerc...@chibi.ubc.ca > <mailto:emerc...@chibi.ubc.ca>> wrote: > > Or, assuming you only have 4 different elements : > > mat<- matrix(rep(c(1,2,"A", "B"),each=10),10,10, byrow=F) > mat2 <- as.data.frame(mat) > > mat > > [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] > [1,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [2,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [3,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [4,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [5,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [6,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [7,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [8,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [9,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [10,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > > mat2 > V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 > > 1 1 2 A B 1 2 A B 1 2 > 2 1 2 A B 1 2 A B 1 2 > 3 1 2 A B 1 2 A B 1 2 > 4 1 2 A B 1 2 A B 1 2 > 5 1 2 A B 1 2 A B 1 2 > 6 1 2 A B 1 2 A B 1 2 > 7 1 2 A B 1 2 A B 1 2 > 8 1 2 A B 1 2 A B 1 2 > 9 1 2 A B 1 2 A B 1 2 > 10 1 2 A B 1 2 A B 1 2 > > Cheers, > > Eloi > > > On 12-07-30 04:28 PM, Rui Barradas wrote: > > Hello, > > Maybe something along the lines of > > J <- 10 > cols <- rep(c(TRUE, TRUE, FALSE, FALSE), 3)[seq_len(J)] > for(i in which(cols)) { do something } > for(i in which(!cols)) { do something else } > > Hope this helps, > > Rui Barradas > > Em 31-07-2012 00 <tel:31-07-2012%2000>:18, Claudia Penaloza > escreveu: > > Dear All, > I would like to apply two different "for loops" to each > set of four columns > of a matrix (the loops here are simplifications of the > actual loops I will > be running which involve multiple if/else statements). > I don't know how to "alternate" between the loops > depending on which column > is "running through the loop" at the time. > ## Set up matrix > J <- 10 > N <- 10 > y <- matrix(0,N,J) > ## Apply this loop to the first two of every four columns > ([,1:2], > [,5:6],[,9:10], etc.) > for (q in 1:N){ > for(j in 1:J){ > if(j %% 2){ > y[q,j]=1 > }else{y[q,j]=2} > } > } > ## Apply this loop to the next two of every four columns > ([,3:4],[,7:8],[,11:12], etc.) > for (q in 1:N){ > for(j in 1:J){ > if(j %% 2){ > y[q,j]="A" > }else{y[q,j]="B"} > } > } > I want to get something like this (preferably without the > quotes): > > y > > [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] > [1,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [2,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [3,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [4,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [5,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [6,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [7,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [8,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [9,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > [10,] "1" "2" "A" "B" "1" "2" "A" "B" "1" "2" > > > > Any help greatly appreciated! > > Claudia > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org <mailto: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. > > > ______________________________________________ > R-help@r-project.org <mailto: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. > > > > > -- > Eloi Mercier > Bioinformatics PhD Student, UBC > Paul Pavlidis Lab > 2185 East Mall > University of British Columbia > Vancouver BC V6T1Z4 > > -- Eloi Mercier Bioinformatics PhD Student, UBC Paul Pavlidis Lab 2185 East Mall University of British Columbia Vancouver BC V6T1Z4 [[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.