Hi All, I'm writing a long code that takes long time to execute. So I used the Rprof() function and found out that the function that takes about 80% of the time is the incomb () fucntion (below), and this is most probably because of the many explicit for() loops I'm using.
n=18;m=4;p=0.3;alpha=0.2;beta=2 x=c(3,0,0) LD<-list() for (i in 1:(m-1)) { LD[[i]]<-seq(0,x[i],1) } LD[[m]]<-seq(0,(n-m-sum(x)),1) LED<-expand.grid (LD) LED<-as.matrix(LED) store1<-numeric(nrow(LED)) h<- numeric(m-1) lm<- numeric(m-1) for (j in 1:length(store1) ) { incomb<-function(x,alpha,beta) { g<-((-1)^(sum(LED[j,])))*(gamma((1/beta)+1))*((alpha)^(-(1/beta))) for (i in 1:(m-1)) { h[i]<- choose(x[i],LED[j,i]) } ik<-prod(h)*choose((n-m-sum(x)),LED[j,m]) for (i in 1:(m-1)) { lm[i]<-(sum(LED[j,1:i])) + i } plm<-prod(lm) gil<-g*ik/(plm) hlm<-numeric(sum(LED[j,])+(m-1)) dsa<-length(hlm) for (i in 1:dsa) { ppp<- sum(LED[j,])+(m-1) hlm[i]<- (choose(ppp,i))*((-1)^(i))*((i+1)^((-1)*((1/beta)+1))) } shl<-gil*(sum(hlm)+1) return (shl) } store1[j]<-incomb(x,alpha=0.2,beta=2) } I'm trying to use alternatives (for ex. to vectorize things) to the explicit for() loops, but things don't work out. Any suggestions that can help me to speed up the execution of the incomb() function are much appreciated. Thanks a lot in advance. Maram Salem [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.