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

請您先登陸,再發跟帖!