各位大神,程序运行提示:Error in if (u < loga) { : 需要TRUE/FALSE值的地方不可以用缺少值,不明白,请指示
rt<-read.table("logistic.txt")#读取数据
rt
wais<-matrix(0,nrow=54,ncol=2)
wais[,1]=rt[,2]
wais[,2]=rt[,3] #数据读入wais中
y<-wais[,2]
x<-wais[,1]
m<-10000
beta0<-c(0,0) #initial value
mu.beta<-c(0,0) #prior mean
s.beta<-c(0,0) #prior sd
prop.s<-c(1.75,0.2)#sd of proposal normal
beta<-matrix(nrow=m,ncol=2)
acc.prob<-c(0,0)
current.beta<-beta0
for (t in 1:m)
{
for(j in 1:2)
{
prop.beta<-current.beta
prop.beta[j]<-rnorm(1,current.beta[j],prop.s[j])#先抽第一个分量
cur.eta<-current.beta[1]+current.beta[2]*x
prop.eta<-prop.beta[1]+prop.beta[2]*x #做一次比较
if(sum(prop.eta>700)>0){print(t);stop;}
if (sum(cur.eta>700)>0){print(t);stop;}
loga<-(sum(y*prop.eta-log(1+exp(prop.eta)))
-sum(y*cur.eta-log(1+exp(cur.eta)))
+sum(dnorm(prop.beta,mu.beta,s.beta,log=TRUE))
-sum(dnorm(current.beta,mu.beta,s.beta,log=TRUE)))
u<-runif(1)
u<-log(u)
if(u<loga)
{
current.beta<-prop.beta
acc.prob<-acc.prob+1
}
}
beta[t,]<-current.beta
}