全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3697 1
2012-04-02
下面是我运行的一段在网上copy的程序,但总是报错:

%macro winsor(dsetin=, dsetout=, byvar=none, vars=, 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;
%winsor(dsetin=reg, dsetout=result, byvar=time, vars=size, type=winsor, pctl=1 99);



请问这样有问题吗,为什么总是提示:WARNING: The variable xbyvar in the DROP, KEEP, or RENAME list has never been referenced.

而且并没有给出winsorize的结果。谢谢各位了
二维码

扫码加我 拉你入群

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

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

全部回复
2013-8-22 18:27:24
WARNING: The variable xbyvar in the DROP, KEEP, or RENAME list has never been referenced.
程序中出现的问题引用之前没有重新定义,因此,有些无法引用而导致出错,winsorize其实不用这么麻烦,sas专栏里面有很多介绍的,可以搜索下
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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