全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
10655 4
2016-08-22

求助。

写了一段指令,如下:
gen skipcon=0
if ba002_1>1960 & (da001==1|da001==2|da002==1|da002==2) & da003==2 ///
& da004==2 & (da005_1_==2& da005_2_==2& da005_3_==2& da005_4_==2& da005_5_==2) ///
&((da007_1_==2& da007_2_==2& da007_3_==2& da007_4_==2& da007_5_==2& da007_6_==2& da007_7_==2 ///
&da007_8_==2& da007_9_==2& da007_10_==2& da007_11_==2& da007_12_==2& da007_13_==2& da007_14_==2) ///
|(da008_1_==2& da008_5_==2& da008_11_==2))


执行以后会生成skipcon值全为0,然后提示{ required。

求好心人指教为什么以及怎么办?

挺急的。

多谢多谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2016-8-22 23:50:52
你这个命令太长了。。。建议拆分成几个部分来写。试试这个看看是不是一样的结果。
gen skipcon=0 if ba002_1>1960 & (da001==1|da001==2|da002==1|da002==2)
replace skipcon=. if !(da003==2 & da004==2 )
replace skipcon=. if !(da005_1_==2 & da005_2_==2 & da005_3_== 2 & da005_4_==2 & da005_5_==2)
gen mark=1 if da007_1_==2& da007_2_==2& da007_3_==2& da007_4_==2& da007_5_==2& da007_6_==2& da007_7_==2
replace mark=. if !(da007_8_==2& da007_9_==2& da007_10_==2& da007_11_==2& da007_12_==2& da007_13_==2& da007_14_==2)
replace skipcon=. if !(mark==1 |(da008_1_==2& da008_5_==2& da008_11_==2))
二维码

扫码加我 拉你入群

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

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

2016-8-23 07:16:21
没明白楼主想要写什么,不过建议楼主关注一下类似inlist()之类的函数,可以简化你的众多条件。
二维码

扫码加我 拉你入群

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

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

2016-8-24 15:49:14
夏目贵志 发表于 2016-8-22 23:50
你这个命令太长了。。。建议拆分成几个部分来写。试试这个看看是不是一样的结果。
gen skipcon=0 if ba002 ...
好的,去试一下!谢谢~
二维码

扫码加我 拉你入群

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

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

2016-8-24 15:49:43
austen06 发表于 2016-8-23 07:16
没明白楼主想要写什么,不过建议楼主关注一下类似inlist()之类的函数,可以简化你的众多条件。
好,去学看一下,感觉就是会的太少所以只能用最原始的。谢谢!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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