楼主: mengyao0305
5387 3

[问答] 求教if else 语句问题 [推广有奖]

  • 0关注
  • 0粉丝

初中生

47%

还不是VIP/贵宾

-

威望
0
论坛币
17 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
432 点
帖子
6
精华
0
在线时间
22 小时
注册时间
2015-9-22
最后登录
2016-12-13

楼主
mengyao0305 发表于 2016-1-16 10:16:12 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
if (x[i-1]<=k*lambda[i-1])
  {eta[i]<-rnorm(1,rho0*sigma0*epsilon[i-1],sigma0*sqrt(1-(rho0)^2))
                   h[i]<-beta0+alpha0*h[i-1]+eta[i]
  }
  else {eta[i]<-rnorm(1,rho1*sigma1*epsilon[i-1],sigma1*sqrt(1-(rho1)^2)
              h[i]<-beta1+alpha1*h[i-1]+eta[i]}


运行时老是出错
> if (x[i-1]<=k*lambda[i-1])
+ {eta[i]<-rnorm(1,rho0*sigma0*epsilon[i-1],sigma0*sqrt(1-(rho0)^2))
+ h[i]<-beta0+alpha0*h[i-1]+eta[i]
+ }
> else {eta[i]<-rnorm(1,rho1*sigma1*epsilon[i-1],sigma1*sqrt(1-(rho1)^2)
Error: unexpected 'else' in "else"
> h[i]<-beta1+alpha1*h[i-1]+eta[i]}
Error: unexpected '}' in "h[i]<-beta1+alpha1*h[i-1]+eta[i]}"


二维码

扫码加我 拉你入群

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

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

关键词:else ELS LSE

回帖推荐

suimong 发表于2楼  查看完整内容

你的else要跟在上一行那个大括号}的后面,不能另起一行。R因为不强制要求表达式末尾加分号,因此会以行尾作为标志来判断表达式是否结束。在if/else里,由于执行if TRUE的表达式体到大括号为止就结束了,并且是合法的表达式,那么R就会将else上方的部分作为完整的表达式单独执行;执行完成后再读入下一句 else,但是else自身当然不能作为一个表达式的开头,因此就会出现执行错误。

沙发
suimong 发表于 2016-1-16 20:55:09
你的else要跟在上一行那个大括号}的后面,不能另起一行。R因为不强制要求表达式末尾加分号,因此会以行尾作为标志来判断表达式是否结束。在if/else里,由于执行if TRUE的表达式体到大括号为止就结束了,并且是合法的表达式,那么R就会将else上方的部分作为完整的表达式单独执行;执行完成后再读入下一句 else,但是else自身当然不能作为一个表达式的开头,因此就会出现执行错误。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
xiaodata + 1 + 1 + 1 一语中的,清楚明白

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
mengyao0305 发表于 2016-1-17 15:38:42
suimong 发表于 2016-1-16 20:55
你的else要跟在上一行那个大括号}的后面,不能另起一行。R因为不强制要求表达式末尾加分号,因此会以行尾作 ...
明白了,谢谢你

板凳
徐艺君 发表于 2016-4-3 00:44:25
讲得真好,还顺带解决了大括号的报错。还从R的运行原理上认识了这个问题,学习了。
很谢谢呀

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

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