Dear R users,
I am running a loop with the integrate function. I have pasted the code
below. I am integrating a function from time=0 to the time value in every
row.
I have to perform this integration over thousands of rows with different
parameters in each row. Could someone please suggest if there is an
efficient/faster/easier way to do this by avoiding the loops ?

Thank you so much for your help and time.
--
Navin Goyal

#####################
dose<-10
time<-0:5
id<-1:5
data1<-expand.grid(id,time,dose)
names(data1)<-c("ID","TIME", "DOSE")
data1<-data1[order(data1$ID,data1$TIME),]

ed<-data1[!duplicated(data1$ID) , c("ID","DOSE")]
set.seed(5324123)

for (k in 1:length(ed$ID))
{
ed$base[k]<-100*exp(rnorm(1,0,0.05))
ed$drop[k]<-0.2*exp(rnorm(1,0,0.01))
ed$frac[k]<-0.5*exp(rnorm(1,0,0.1))
}
comb1<-merge(data1[, c("ID","TIME")], ed)
comb2<-comb1
comb2$score<-comb2$base*exp(-comb2$drop*comb2$TIME)

func1<-function(t,cov1,beta1, change,other)
{
ifelse(t==0,cov1, cov1*exp(beta1*change+other))
}
comb3<-comb2
comb3$cmhz=0
comb3<-comb3[order(comb3$ID, comb3$TIME), ]

for (q in 1:length(comb3$ID))
{
comb3$cmhz[q]<-integrate(func1, lower=0, upper=comb3$TIME[q],
         cov1=0.001,beta1=0.02,
         change=comb3$score[q], other=comb3$frac[q])$value
}
head(comb3)

	[[alternative HTML version deleted]]

