Hi,
I am at the end of my wit to figure out how to run the optim function on a list. Basically, I have a data set of three columns as "Site", "Pool" and "Positivity" ( the full data set is copied at the end). I want to run the maximal likelihood estimation separately on subsets split by "Site" data<-read.table(...) sp<-split(data,data$Site) # My likelihood function is like<-function(p,...){ for(i in 1:length(Pool)){ if(Positivity[i]==1) log.l[i]<-log(1-(1-p)^Pool[i]) else log.l[i]<-Pool[i]*log(1-p) } return(sum(log.l)) } # Then I run lapply(sp,function(x) optim (0.1,like,control=list(fnscale=-1))) #But it gives an estimation based on the full data, not separately on sp[[1]], sp[[2]],... I tried do.call without success. So, your help would be appreciated. Weidong Gu Department of Medicine University of Alabama, Birmingham 1900 University Blvd., Birmingham, Alabama 35294 Email: [EMAIL PROTECTED] PH: (205)-975-9053 Site Pool Positivity UBA_1 22 0 UBA_1 50 0 UBA_1 23 0 UBA_1 25 0 UBA_1 35 0 UBA_1 24 0 UBA_1 26 0 Cham_res 43 0 Cham_res 45 0 Cham_res 34 0 Cham_res 24 0 Cham_res 21 0 Cham_res 16 0 Cham_res 28 0 Cham_res 50 0 Cham_res 50 1 Cham_res 39 1 UBA_2 16 0 UBA_2 18 1 UBA_2 42 1 UBA_2 35 1 UBA_2 50 1 UBA_2 26 0 UBA_2 20 0 UBA_2 16 0 UBA_2 19 0 UBA_2 50 0 UBA_2 26 0 UBA_2 13 1 UBA_2 30 1 UBA_3 17 0 UBA_3 20 0 UBA_3 19 0 UBA_3 50 0 UBA_3 24 1 UBA_3 18 1 UBA_3 16 1 UBA_3 14 0 UBA_3 12 0 UBA_3 15 0 UBA_3 11 0 UBA_3 20 1 UBA_3 19 1 UBA_3 31 1 UBA_4 12 0 UBA_4 11 0 UBA_4 12 0 UBA_4 21 0 UBA_4 33 0 UBA_4 15 0 UBA_4 10 0 [[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.