Thank you very much Rui (and Eloi for your input)... this is (the very simplified version of) what I will end up using:
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"} } } Cheers, Claudia On Mon, Jul 30, 2012 at 5:38 PM, Mercier Eloi <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: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 mailing list >>> https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help> >>> PLEASE do read the posting guide http://www.R-project.org/** >>> posting-guide.html <http://www.R-project.org/posting-guide.html> >>> and provide commented, minimal, self-contained, reproducible code. >>> >> >> ______________________________**________________ >> R-help@r-project.org mailing list >> https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help> >> PLEASE do read the posting guide http://www.R-project.org/** >> posting-guide.html <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 > > [[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.