楼主: dreality
16537 6

[编程问题求助] if 条件里 能够同时使用不同的逻辑连接 [推广有奖]

  • 0关注
  • 0粉丝

本科生

11%

还不是VIP/贵宾

-

威望
0
论坛币
112 个
通用积分
0.0002
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
386 点
帖子
19
精华
0
在线时间
143 小时
注册时间
2006-9-22
最后登录
2021-9-13

楼主
dreality 发表于 2013-10-14 23:37:34 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
就是,我要用到好多限制条件生产新的变量。
其中包括 and or 但是我想让他们分别执行,而不是依顺序进行。

例如,gen a=0 if b==1 | c==2 & d==3 |e==4

我想b==1 |c==2 为一个条件,d==3 |e==4为另一个条件。


怎么能实现呢?
二维码

扫码加我 拉你入群

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

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

关键词:限制条件

沙发
xingxf 发表于 2013-10-15 05:45:49
你能把你的逻辑重新用文字表述一下么?
|是逻辑或,&是逻辑与
按你目前的表达,你的意思是a=0,如果b=1或者c=2;a=0,如果d=3或者e=4如果是这个意思,那根本没必要区分什么条件的
gen a=1
replace a=0 if b==1|c==2|d==3|e==4

还是说你的意思是,a=0,如果b=1且C=2;或者a=0,如果d=3且e=4
如果是这个意思,那命令如下:
gen a=1
replace a=0 if (b==1&c==2)|(d==3&e==4)

已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
Lyndon-he + 5 + 1 + 1 + 1 精彩帖子

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

藤椅
dreality 发表于 2013-10-16 23:51:40
xingxf 发表于 2013-10-15 05:45
你能把你的逻辑重新用文字表述一下么?
|是逻辑或,&是逻辑与
按你目前的表达,你的意思是a=0,如果b=1或者 ...
你确定if 条件里可以用()吗。。。

那我加入是这样的可以吗 gen a=1 if (b==1 |c==1) & (d==1 | e==1)

貌似系统会报错,说&后面的(d 不是一个变量名。。。

板凳
xingxf 发表于 2013-10-17 01:34:46
dreality 发表于 2013-10-16 23:51
你确定if 条件里可以用()吗。。。

那我加入是这样的可以吗 gen a=1 if (b==1 |c==1) & (d==1 | e==1 ...
if 当然可以加括号,加了括号表示先执行括号里的逻辑
你的意思是说a=1, 如果b或者c等于1,并且d或e等于1.
那应该是
gen a=0
replace a=1 if (b==1|c==1)&(d==1|e==1)

报纸
dreality 发表于 2013-10-17 11:52:55
xingxf 发表于 2013-10-17 01:34
if 当然可以加括号,加了括号表示先执行括号里的逻辑
你的意思是说a=1, 如果b或者c等于1,并且d或e等于1 ...
貌似系统会报错,说&后面的(d 不是一个变量名。。.

是不是识别不了后面的括号内容呀。。。

地板
xingxf 发表于 2013-10-18 00:02:52
dreality 发表于 2013-10-17 11:52
貌似系统会报错,说&后面的(d 不是一个变量名。。.

是不是识别不了后面的括号内容呀。。。
我试过了没问题的。你能把你的代码写出来么,另外,报错的具体内容贴出来。你这么笼统地说,别人没办法帮你啊。

7
bellman2010 发表于 2014-3-16 09:59:49
谢谢,受教了

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-30 10:33