楼主: laijf
8573 2

[问答] Error in if (u < loga) { : 需要TRUEFALSE值的地方不可以用缺少值 [推广有奖]

  • 0关注
  • 0粉丝

高中生

60%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.0070
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
483 点
帖子
16
精华
0
在线时间
8 小时
注册时间
2016-7-17
最后登录
2016-8-20

楼主
laijf 发表于 2016-7-21 21:27:04 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
各位大神,程序运行提示: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

            }
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:TRUEFALSE Error Log Rue err Error 程序

沙发
jgchen1966 发表于 2016-7-21 22:50:43
loga的值可能是NA  如下面显而易见的例子:


x<-NA
y<-3
z<-5
if (x<2)
{ x=y+z
}

运行结果就是:Error in if (x < 2) { : missing value where TRUE/FALSE needed

藤椅
laijf 发表于 2016-7-22 15:00:53
谢谢,我查一下

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-10 05:03