我想刪除頂部和底部0.1%的一些異常值。 PROC MEANS有p99選項,只有幫助去除最高1%,而不是0.1%。還有另一種方法可以做到嗎?我想到了PROC RANK,但不確定它是否會給出相同的結果。 我的代碼是:proc rank vs proc意味着刪除頂部和底部0.1%
proc means data=input noprint; by date; output out=trunc(drop=_FREQ_ _TYPE_) p99(var1)=p99_var1 p99(var2)=p99_var2; run;
data input; merge input trunc; by date;
if var1 < p99_var1 and var2<p99_var2;run;
versus
proc rank data=input out=input percent;
by date;
var var1 var2;
ranks percentile1 percentile2;
run;
data input; set input;
where 0.001<percentile1<0.999 and 0.001<percentile2<0.999;run
我知道的是,在第一種方法我用99%(因爲我不知道該怎麼辦99.9%,此方法),但我在第二種方法使用99.9%。如果我使用99%作爲第二種方法,哪種方法更好?並且2會產生相同的結果嗎?