在r中的list()中,replacement的长度为零

时间:2017-10-13 10:01:13

标签: r

我试图运行此代码,并且我正在使用mhadaptive包,但问题是当我运行这些代码而不编写metropolis_hastings(这是mhadaptive包的一部分)时,不会发生错误,但是当我添加mhadaptive包时,会发生错误。我该怎么办?

li_F1<-function(pars,data)  #defining first function
{
    a01<-pars[1]           #defining parameters
    a11<-pars[2]
    epsilon<<-pars[3]
    b11<-pars[4]
    a02<-pars[5]
    a12<-pars[6]
    b12<-pars[7]
    h<-pars[8]

    h[[i]]<-list()   #I want my output is be listed in the h
    h[[1]]<-0.32082184      #My first value of h is known and other values should calculate by formula
    for(i in 2:nrow(F_2_))
    {
        h[[i]]<- ((a01+a11*(h[[i-1]])*(epsilon^2)*(h[[i-1]])*b11)+(F1[,2])*((a02+a12*(h[[i-1]])*(epsilon^2)+(h[[i-1]])*b12)))
        pred<- h[[i]]
    }
    log_likelihood<-sum(dnorm(prod(h[i]),pred,sd = 1 ,log = TRUE)) 
    return(h[i])
    prior<- prior_reg(pars)
    return(log_likelihood + prior)
    options(digits = 22)
}

prior_reg<-function(pars)  #defining another function
{
    epsilon<<-pars[3]    #error
    prior_epsilon<-pt(0.95,5,lower.tail = TRUE,log.p = FALSE)
    return(prior_epsilon)
}

F1<-as.matrix(F_2_)  #defining my importing data and simulatunig data with them
x<-F1[,1]
y<-F1[,2]
d<-cbind(x,y)

#using mhadaptive package
mcmc_r<-Metro_Hastings(li_func = li_F1,pars=c(10,15,10,10,10,15),par_names=c('a01','a02','a11','a12','b11','b12'),data=d)

通过运行此代码,会发生此错误。

Error in h[[i]] <- list() : replacement has length zero

我非常感谢谁帮助了我。

0 个答案:

没有答案