全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1365 6
2016-08-04
悬赏 15 个论坛币 已解决
id         year       export
1          2001        0
1          2002        1
1          2003        1
1          2004        0
1          2005        0
1          2006        1
1          2007        1
1          2008        1
1          2009        0
1          2010        1
1          2011        1
以上数据,id为企业个体,export为是否出口(1为出口,0为不出口),想统计企业每次出口的年限。如企业1,2002年开始出口,并连续出口两年,所以第一次出口的年限为2;第二次出口从2006年开始,持续三年,所以第二次出口的年限为3,;第三次出口从2010年开始,连续出口2年。基于此,想得到的数据为
id      suv   startyear
1        2         2002
1        3         2006
1        2         2010
求SAS如何实现,谢谢!!

最佳答案

wwang111 查看完整内容

proc sort data=test; by id year; run; data step1; set test; by id year; retain startyear; if first.id or export=0 then do; suv=.; startyear=.; end; if export=1 then suv+1; if suv=1 then startyear=year; run; proc sql; create table wanted as select id, startyear, suv from step1 where export=1 group by 1,2 having suv=max(suv); quit;
二维码

扫码加我 拉你入群

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

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

全部回复
2016-8-4 08:27:07
proc sort data=test;
by id year;
run;

data step1;
set test;
by id year;
retain startyear;
if first.id or export=0 then do;
   suv=.;
   startyear=.;
end;
if export=1 then suv+1;
if suv=1 then startyear=year;
run;

proc sql;
create table wanted as
select id, startyear, suv
from step1
where export=1
group by 1,2
having suv=max(suv);
quit;
二维码

扫码加我 拉你入群

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

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

2016-8-4 08:43:18
id         year       export
1          2001        0
1          2002        1
1          2003        1
1          2004        0
1          2005        0
1          2006        1
1          2007        1
1          2008        1
1          2009        0
1          2010        1
1          2011        1
1          2012        0
2          ....
想得到的数据为:
id      suv   startyear
1        2         2002
1        3         2006
1        2         2010
二维码

扫码加我 拉你入群

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

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

2016-8-4 09:21:56
wwang111 发表于 2016-8-4 08:59
proc sort data=test;
by id year;
run;
非常感谢!!
二维码

扫码加我 拉你入群

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

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

2016-8-4 11:26:34
wwang111 发表于 2016-8-4 08:27
proc sort data=test;
by id year;
run;
想请教一下,“group by 1,2”,里面的1,2是指select里面的第一个变量和第二个变量吗
二维码

扫码加我 拉你入群

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

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

2016-8-4 11:45:01
l1i2n3i4n5g 发表于 2016-8-4 11:26
想请教一下,“group by 1,2”,里面的1,2是指select里面的第一个变量和第二个变量吗
是的,按照顺序来的
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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