我想删除顶部和底部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会产生相同的结果吗?