全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
4090 3
2016-03-22
各位大神,请教一下stata里的两种if语句有什么区别。我知道正常来说应该是replace d=c if a==1这样子的,但是我看到有的人用类似于下面这样的编写形式:if a==1{  replace d=c
}
比如
         forvalues x = 1/4 {
if mod(`x',2) {
display "`x' is odd"
continue
}
display "`x' is even"
}

我想问一下这两种写法有区别么?我用数据试了一下两种方法得到的结果不一样。


二维码

扫码加我 拉你入群

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

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

全部回复
2016-3-24 10:55:52
这个是不一样的。你说的第一个if是用来在别的命令里添加条件的筛选数据的。具体的看help if
你说的第二个if是编程的命令,和for、while这样的命令是一类的。具体的看help ifcmd
这两者之间是不能相互替代的。
二维码

扫码加我 拉你入群

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

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

2016-3-26 10:30:10
夏目贵志 发表于 2016-3-24 10:55
这个是不一样的。你说的第一个if是用来在别的命令里添加条件的筛选数据的。具体的看help if
你说的第二个i ...
太感谢了!!我看到在ifcmd里,if a==1{  }里仅仅是对a的第一个值判断是否等于1,我在help里没有找到相关表述,但我试了一下好像是这样的,请问这种说法有道理么?
二维码

扫码加我 拉你入群

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

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

2016-3-28 07:34:20
fulishadawang 发表于 2016-3-26 10:30
太感谢了!!我看到在ifcmd里,if a==1{  }里仅仅是对a的第一个值判断是否等于1,我在help里没有找到相关 ...
我也一下想不起来哪里说过但是我的经验也是这样的
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群