全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1513 4
2015-11-19
%macro winsor(dsetin=b2,dsetout=win1,byvar=none,vars=lncost lnsales aint emp growth usgrowth,type=winsor,pctl=1 99);
    %if &dsetout= %then %let dsetout=&dsetin;
    %let varL=;
    %let varH=;
    %let xn=1;
    %do %until ( %scan(&vars,&xn)= );
    %let token = %scan(&vars,&xn);
    %let varL = &varL &token.L;
    %let varH = &varH &token.H;
    %let xn = %EVAL(&xn + 1);
    %end;
    %let xn= %eval(&xn-1);
    data xtemp;set &dsetin;run;
    %if &byvar=none %then %do;
    data xtemp;set xtemp;xbyvar=1;run;
    %let byvar = xbyvar;
    %end;
    proc sort data=xtemp;by &byvar;run;
    proc univariate data=xtemp noprint;by &byvar;
         var &vars;output out=xtemp_pctl PCTLPTS= &pctl PCTLPRE= &vars PCTLNAME= L H;run;
    data &dsetout;merge xtemp xtemp_pctl;by &byvar;
         array trimvars{&xn} &vars;
         array trimvarl{&xn} &varL;
         array trimvarh{&xn} &varH;
         do xi = 1 to dim(trimvars);
         %if &type = winsor %then %do;
         if not missing(trimvars{xi}) then do;
         if (trimvars{xi} < trimvarl{xi}) then trimvars{xi} = trimvarl{xi};
         if (trimvars{xi} > trimvarh{xi}) then trimvars{xi} = trimvarh{xi};
    end;
    %end;
    %else %do;
         if not missing(trimvars{xi}) then do;
         if (trimvars{xi} < trimvarl{xi}) then delete;
         if (trimvars{xi} > trimvarh{xi}) then delete;
    end;
    %end;
    end;
    drop &varL &varH xbyvar xi;
    run;
%mend winsor;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-11-19 12:57:51
问题是什么?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-11-19 14:56:32
孤单的我们 发表于 2015-11-19 12:57
问题是什么?
问题是这段宏命令为什么运行不出来,哪里出了bug吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-11-19 15:23:45
chaoenwang 发表于 2015-11-19 14:56
问题是这段宏命令为什么运行不出来,哪里出了bug吗?
能否提供下b2数据集?方便调试
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-11-19 16:12:24
孤单的我们 发表于 2015-11-19 15:23
能否提供下b2数据集?方便调试
数据集在里面,谢谢拉
附件列表

逻辑存储.rar

大小:72.87 MB

 马上下载

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群