我有一个函数myF(g,m,alpha,gam,theta,beta)
。返回三个参数估计值。我想为(i in 1:10)
迭代这个函数。我怎么能在R中做到这一点?
myF <- function(g,m,alpha,gam,theta,beta){
dat <- sim.data(g,m,alpha,gam,theta,beta)
time <- dat$times
delta <- dat$cens
i <- dat$group
X1<-dat$cov #cov~rbinom
n <- length(levels(as.factor(i)))
di <- aggregate(delta,by=list(i),FUN=sum)[,2]
D <- sum(di)
loglik <- function(par){
.........................................
return(-lik)
}
initial=c(0.5,0.5,-0.5,0.5)
maxF <- nlm(loglik, initial)
return(c(theta=exp(maxF$estimate[2]),beta1=maxF$estimate[3],alpha=exp(maxF$estimate[2])))
}
答案 0 :(得分:0)
使用replicate
:
replicate(10, myF(g,m,alpha,gam,theta,beta))
这将创建参数估计的3 * 10矩阵,其中每列是单独迭代的结果。