迭代函数R代码

时间:2014-03-23 15:54:44

标签: r loops

我有一个函数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])))
    }

1 个答案:

答案 0 :(得分:0)

使用replicate

可以轻松完成此操作
replicate(10, myF(g,m,alpha,gam,theta,beta))

这将创建参数估计的3 * 10矩阵,其中每列是单独迭代的结果。