这个也好意思拿出来卖?
%macro Extremes(data, Var, IDVar, N, data1);
data temp;
set &data;
keep &IDVar &Var;
run;
proc univariate data=temp noprint;
var &Var;
output out=temp_u STD=VSTD Mean=VMean;
run;
data _null_;
set temp_u;
call symput('STD', VSTD);
call symput('Mean', VMean);
run;
%let ULimit=%sysevalf(&Mean + &N * &STD);
%let LLimit=%sysevalf(&Mean - &N * &STD);
data &data1;
set temp;
if &Var < &Llimit or &Var > &ULimit;
run;
/*proc datasets library=work nodetails nolist ;
delete temp temp_u;
quit;*/
%mend;
/********data数据集,Var连续变量,IDVar唯一标识,N=2异常值、N=3极端异常值,data1生成的新数据集/
|