楼主: 宜风
6781 7

[编程问题求助] 关于if循环语句的编写 [推广有奖]

  • 0关注
  • 0粉丝

讲师

45%

还不是VIP/贵宾

-

威望
0
论坛币
2781 个
通用积分
240.3385
学术水平
4 点
热心指数
6 点
信用等级
2 点
经验
29305 点
帖子
111
精华
0
在线时间
739 小时
注册时间
2013-8-24
最后登录
2024-3-7

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
对附件中的数据进行操作
目标:产生一个新变量叫ibtic,对于tic=tic1的公司,把ibtic1的值复制到ibtic中
开始写的程序如下:
                                 gen str6 ibtic=""
                                 replace ibtic=ibtic1 if tic==tic1
                                 可以达到效果

问题:我因为要附加其他很多条件,想改用if循环语句,写成如下样式:
                                 gen str6 ibtic=""
                                 if tic==tic1 {
                                      replace ibtic=ibtic1
                                 }

执行后所有ibtic仍为空缺值,为什么会这样?我应该怎么写呢?谢谢!


二维码

扫码加我 拉你入群

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

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

关键词:循环语句 replace place TIC IBT 字符串

a.dta

7.06 MB

提问中用到的data

回帖推荐

夏目贵志 发表于7楼  查看完整内容

你还是没弄明白两者的区别。看看这里吧http://www.stata.com/support/faqs/programming/if-command-versus-if-qualifier/ 你要附加什么条件啊?
沙发
宜风 发表于 2016-11-17 19:07:19 |只看作者 |坛友微信交流群
为什么木有人回答

使用道具

藤椅
宜风 发表于 2016-11-19 10:50:33 |只看作者 |坛友微信交流群
我再顶一下

使用道具

板凳
夏目贵志 发表于 2016-11-19 11:51:40 |只看作者 |坛友微信交流群
你直接 gen ibtic=ibtic1 if tic==tic1应该就可以了if不是像你这么用的。你得对每个replace命令都加上适当的if条件。看一下help if

使用道具

报纸
宜风 发表于 2016-11-19 13:06:48 |只看作者 |坛友微信交流群
夏目贵志 发表于 2016-11-19 11:51
你直接 gen ibtic=ibtic1 if tic==tic1应该就可以了if不是像你这么用的。你得对每个replace命令都加上适当的 ...
可是写成循环以后,if写在括号外面了,括号内写什么命令都没有反应,我看过help if的说明文件了,可是还是看不出哪里有问题。谢谢

使用道具

地板
夏目贵志 发表于 2016-11-19 13:21:48 |只看作者 |坛友微信交流群
宜风 发表于 2016-11-19 13:06
可是写成循环以后,if写在括号外面了,括号内写什么命令都没有反应,我看过help if的说明文件了,可是还是 ...
你还是没弄明白两者的区别。看看这里吧http://www.stata.com/support/faq ... ersus-if-qualifier/

你要附加什么条件啊?

使用道具

7
宜风 发表于 2016-11-19 14:00:47 |只看作者 |坛友微信交流群
夏目贵志 发表于 2016-11-19 13:21
你还是没弄明白两者的区别。看看这里吧http://www.stata.com/support/faqs/programming/if-command-versu ...
谢谢你的回答,我明白一些了,如果是if x==1,这就是一个argument,不可以写成循环形式,但如果我用if `x'==1中x如果是引用的暂元,那`x'==1就是expression了,我就可以写成循环形式,对吗?非常感谢!

使用道具

8
夏目贵志 发表于 2016-11-20 00:10:11 |只看作者 |坛友微信交流群
宜风 发表于 2016-11-19 14:00
谢谢你的回答,我明白一些了,如果是if x==1,这就是一个argument,不可以写成循环形式,但如果我用if `x ...
嗯。差不多吧。一般生成或者修改数据能不用循环是最有效率的。当然如果现实情况不允许,需要循环还是得用。

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 01:59