here

我不怎么用proc rank,就不另外查manual了。

假设你original dataset是A,

proc sort data = A out = B;by var;run;

data B;
set B;
if first.var then do;
cnt = 0;
retain cnt;
end;
cnt+1;
run;

计算20 percentile是哪一个数值点,这取决于你用哪一种取percentile的方法,记为第n个数值点,then

proc sql;
create table Q20 as
select * from B where cnt le n;

alter table q20 drop cnt;
quit;

proc sql;
create table Q80 as
select * from B where cnt gt n;

alter table Q80 drop cnt;
quit;

Table Q20保存了percentile 20, Q80保存了另外的80%.

可能proc rank会方便一点,下次我也去试试看,谢谢分享:)

所有跟帖: 

非常感谢! 以后还要多向你请教! -Janezhu- 给 Janezhu 发送悄悄话 (0 bytes) () 04/20/2010 postreply 22:03:04

请您先登陆,再发跟帖!