library(RTMB) # for data we use the built-in data "InsectSprays" par <- list(logAlpha=rep(0,nlevels(InsectSprays$spray))) f<-function(par){ getAll(InsectSprays, par) lambda <- exp(logAlpha[spray]) nll <- -sum(dpois(count,lambda,log=TRUE)) nll } obj <- MakeADFun(f, par) opt <- nlminb(obj$par, obj$fn, obj$gr)