我的年度数据在2013年结束,但我想使用那一年并将其复制到2014年,2015年以及最终2016年(无论我们当前的数据年份如何)。使用以下测试数据:
DATA TEST;
INPUT YEAR Q1 Q2 Q3 Q4;
DATALINES;
2012 20 30 40 50
2013 21 29 43 47
;
RUN;
我最终想要一个包含以下内容的数据集:
2012 20 30 40 50
2013 21 29 43 47
2014 21 29 43 47
2015 21 29 43 47
2016 21 29 43 47
这只是一个快速示例,因为我的数据更大,更复杂,但有一个快速的DO UNTIL
和OUTPUT
方法可以根据需要多次复制最后一行并生成{{ 1}}每次迭代?基本上,复制最后一行,直到YEAR+1
等于存档的最新年份。
答案 0 :(得分:3)
您只需要检测数据的结尾。使用END =选项或如果您的数据已分组使用LAST。来自BY集团处理的旗帜。
data want ;
set have end=eof;
output;
if eof then do year=year+1 to 2016;
output;
end;
run;