On Thu, Mar 29, 2012 at 9:27 AM, ilai <ke...@math.montana.edu> wrote:
Oops, sent to fast. A (maybe) clearer solution: f <- function(x,m){ cmway <- combn(ncol(x),m) xx <- x[,cmway] dim(xx) <- c(nrow(x),nrow(cmway),ncol(cmway)) xx } f(M,3) str(sapply(2:4,f,x=M)) And again lapply / apply , or even return icc(xx) in f Cheers > To cbind, you don't need a loop > > (M <- matrix(1:50,nc=10)) > c2way <- combn(ncol(M),2) > MM <- M[,c2way] > dim(MM) <- c(nrow(M),nrow(c2way),ncol(c2way)) > MM > > c3way <- combn(ncol(M),3) > MMM <- M[,c3way] > dim(MMM) <- c(nrow(M),nrow(c3way),ncol(c3way)) > MMM > > etc. etc. > > Than you can (untested for icc) loop your function as in > apply(MMM,3,somefun) > > cheers > > On Thu, Mar 29, 2012 at 7:28 AM, Dai, Hongying, <h...@cmh.edu> wrote: >> Dear R users, >> >> I'm wondering how I can generate an arbitrary number of loops in R. >> For instance, I can generate two "for" loops to get ICC among any two-way >> combination among 10 variables. Here is the code >> >> n<-10 >> for (i in 1:(n-1)) >> { >> for (j in (i+1):n) >> { >> icc(cbind(DATA[,i],DATA[,j])) >> } >> } >> If I need three-way combination, then a code with three "for" loops will be: >> n<-10 >> for (i in 1:(n-2)) >> { >> for (j in (i+1):(n-1)) >> { >> for (k in (j+1):n) >> { >> icc(cbind(DATA[,i],DATA[,j],DATA[,k])) >> } >> } >> } >> But how can I write a code if I need all m=2, 3, 4,... loops for arbitrary >> m-way combinations? >> Thanks! >> Daisy >> >> >> ________________________________ >> Electronic mail from Children's Mercy Hospitals and Clinics. This >> communication is intended only for the use of the addressee. It may contain >> information that is privileged or confidential under applicable law. If you >> are not the intended recipient or the agent of the recipient, you are hereby >> notified that any dissemination, copy or disclosure of this communication is >> strictly prohibited. If you have received this communication in error, >> please immediately forward the message to Children's Mercy Hospital's >> Information Security Officer via return electronic mail at >> informationsecurityoffi...@cmh.edu and expunge this communication without >> making any copies. Thank you for your cooperation. >> >> [[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. ______________________________________________ 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.