全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
774 2
2017-01-04
请教大家,如何把框架填好?

原始数据
stkcdyearvariable
119991
120042
120072
120096
120111
220031
220072
220113
320031
420022
420031
420041
420051
420073
420081
420091
420101
420111
420129
420131
420145
520141



目标的样式:
stkcdyearvariable
119991
12000
12001
12002
12003
120042
12005
12006
120072
12008
120096
12010
120111
12012
12013
12014
12015

二维码

扫码加我 拉你入群

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

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

全部回复
2017-1-4 17:25:00
data test;
input stkcd year variable;
cards;
1 1999 1
1 2004 2
1 2007 2
1 2009 6
1 2011 1
2 2003 1
2 2007 2
2 2011 3
3 2003 1
4 2002 2
4 2003 1
4 2004 1
4 2005 1
4 2007 3
4 2008 1
4 2009 1
4 2010 1
4 2011 1
4 2012 9
4 2013 1
4 2014 5
5 2014 1
;
run;

data test1;
set test;
by stkcd year;
output;
if first.stkcd then do;
        do year=1999 to 2015;
                variable=.;
                output;
        end;
end;
run;

proc sort data=test1 out=test2;
by stkcd year descending variable;
run;

data test3;
set test2;
by stkcd year;
if first.year;
run;
二维码

扫码加我 拉你入群

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

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

2017-1-4 20:18:27
data test;
input stkcd        year variable;
cards;
1        1999        1
1        2004        2
1        2007        2
1        2009        6
1        2011        1
2        2003        1
2        2007        2
2        2011        3
3        2003        1
4        2002        2
4        2003        1
4        2004        1
4        2005        1
4        2007        3
4        2008        1
4        2009        1
4        2010        1
4        2011        1
4        2012        9
4        2013        1
4        2014        5
5        2014        1
;

data allyear;
do year=1999 to 2015;
  output;
end;
run;

proc sql;
create table wanted as
select a.stkcd, a.year, variable
from
(select * from
(select distinct stkcd from test), (select distinct year from allyear)) a
left join test b
on a.stkcd=b.stkcd and a.year=b.year;
quit;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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