免责声明:这是作业。
我有一个SAS数据集:
ID VAL YEAR
我需要按YEAR
因此,在我的情况下,这些年份从1980年到2000年,每年都有很多行。
如果我想对整套进行排名,我会这样做:
proc rank groups=10 data=foo out=bar;
var val; ranks s1; run;
但这并没有按年份分开。所以我试着将它放入DO
循环和APPEND
每年的排名数据:
do i=0 to 20;
data z; set l;
if year = 1980 + i;
keep id year val;
run;
proc append base=l data=z;
run;
end;
run;
但它不会将i
识别为变量,也不会附加任何数据。
有什么想法吗?
答案 0 :(得分:2)
不确定这是否正是您想要的。如果您想通过变量执行rank
,只需声明by
的{{1}}语句。同时确保数据集在执行此操作之前按年排序。
proc rank