楼主: angelfyh
3116 8

请大侠帮忙分析下这个计算LIFT,CLIFT的代码啊?怎么总是觉得不对 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

高中生

30%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
133 点
帖子
16
精华
0
在线时间
26 小时
注册时间
2013-8-4
最后登录
2015-4-24

楼主
angelfyh 发表于 2013-8-21 16:05:38 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
以下是一个标准的宏代码,但是结果怎么总觉得和自己的数据不吻合啊,求大侠帮着分析看看呀
%macro oneplot(oneplot);
     %if %upcase(%substr(&oneplot,1,2))=CG %then %do;
       %let _title="Cumulative Gain"; %let _yvar=CumGain;
       %let _baseline=BaseCumGain;
     %end;
     %else %if %upcase(%substr(&oneplot,1,2))=GA %then %do;
       %let _title="Gain"; %let _yvar=Gain;
       %let _baseline=BaseGain;
     %end;
     %else %if %upcase(%substr(&oneplot,1,2))=CL %then %do;
       %let _title="Cumulative Lift"; %let _yvar=CumLift;
       %let _baseline=BaseCumLift;
     %end;
     %else %if %upcase(%substr(&oneplot,1,2))=LI %then %do;
       %let _title="Lift"; %let _yvar=Lift;
       %let _baseline=BaseLift;
     %end;
     %else %if %upcase(%substr(&oneplot,1,2))=CC %then %do;
       %let _title="Cumulative Percent Captured"; %let _yvar=CumPctCaptured;
       %let _baseline=BaseCumPctCaptured;
     %end;
     %else %if %upcase(%substr(&oneplot,1,2))=PC %then %do;
       %let _title="Percent Captured"; %let _yvar=PctCaptured;
       %let _baseline=BasePctCaptured;
     %end;
     %else %if %upcase(%substr(&oneplot,1,2))=CR %then %do;
       %let _title="Cumulative Percent Response"; %let _yvar=CumPctResp;
       %let _baseline=BaseCumPctResp;
     %end;
     %else %if %upcase(%substr(&oneplot,1,2))=PR %then %do;
       %let _title="Percent Response"; %let _yvar=PctResp;
       %let _baseline=BasePctResp;
     %end;
     %else %do;
       %put ERROR: ONEPLOT must be CGAIN, GAIN, CLIFT, LIFT, CCAPT, PCAPT, CRESP, or PRESP;
       %goto exit;
     %end;
     proc sgrender data = &out template=GainLiftPlot;
       run;
     %exit:
%mend oneplot;

%macro GainLift(version, data=_last_, response=, p=, event=, graph=line,
       oneplot=, groups=20, panel=yes, grid=on, xaxis=SelectedPct,
       out=_GainLift);
%let _version=1.0;
%if &version ne %then %put GainLift macro Version &_version;
%if &data=_last_ %then %let data=&syslast;
%let _opts = %sysfunc(getoption(notes))
            _last_=%sysfunc(getoption(_last_));
%if &version ne debug %then %str(options nonotes;);
/* Check for newer version */
%if %sysevalf(&sysver >= 8.2) %then %do;
  %let _notfound=0;
  filename _ver url 'http://ftp.sas.com/techsup/download/stat/versions.dat' termstr=crlf;
  data _null_;
    infile _ver end=_eof;
    input name:$15. ver;
    if upcase(name)="&sysmacroname" then do;
       call symput("_newver",ver); stop;
    end;
    if _eof then call symput("_notfound",1);
    run;
  %if &syserr ne 0 or &_notfound=1 %then
    %put &sysmacroname: Unable to check for newer version;
  %else %if %sysevalf(&_newver > &_version) %then %do;
    %put &sysmacroname: A newer version of the &sysmacroname macro is available.;
    %put %str(         ) You can get the newer version at this location:;
    %put %str(         ) http://support.sas.com/ctx/samples/index.jsp;
  %end;
%end;
  %if &oneplot ne %then %let panel=N;
  /* DATA= data set option must be specified and must exist */
  %if &data= or %sysfunc(exist(&data)) ne 1 %then %do;
    %put ERROR: DATA= data set not specified or not found.;
    %goto exit;
  %end;
  /* RESPONSE= check */
  %if &response= %then %do;
    %put ERROR: The RESPONSE= parameter is required.;
    %goto exit;
  %end;
  /* P= check */
  %if &p= %then %do;
    %put ERROR: The P= parameter is required.;
    %goto exit;
  %end;
  /* EVENT= check */
  %if &EVENT= %then %do;
    %put ERROR: The EVENT= parameter is required.;
    %goto exit;
  %end;
  /* GROUPS= check */
  %if &groups ne 10 and &groups ne 20 %then %do;
    %put ERROR: GROUPS= must be 10 or 20;
    %goto exit;
  %end;
  /* GRID= check */
  %if %upcase(&grid) ne ON and %upcase(&grid) ne OFF %then %do;
    %put ERROR: GRID= must be ON or OFF;
    %goto exit;
  %end;
  /* PANEL= check */
  %if %upcase(%substr(&panel,1,1)) ne Y and
      %upcase(%substr(&panel,1,1)) ne N %then %do;
    %put ERROR: PANEL= must be YES or NO;
    %goto exit;
  %end;
  /* GRAPH= check */
  %if %upcase(%substr(&graph,1,1)) ne L and
      %upcase(%substr(&graph,1,1)) ne B and
      %upcase(%substr(&graph,1,1)) ne N %then %do;
    %put ERROR: GRAPH= must be LINE or BAR or NONE;
    %goto exit;
  %end;
  /* XAXIS check */
  %if       %upcase(%substr(&xaxis,1,1))=G %then %let _xvar=_grp;
  %else %if %upcase(%substr(&xaxis,1,1))=S %then %let _xvar=SelectedPct;
  %else %if %upcase(%substr(&xaxis,1,1))=P %then %let _xvar=Percentile;
  %else %do;
    %put ERROR: XAXIS= must be GROUPNUM or PERCENTILE or SELECTEDPCT;
    %goto exit;
  %end;
  ods exclude all;
  ods output nlevels=_nlvls;
  proc freq data=&data nlevels;
   where missing(&response) ne 1;
   table &response;
   run;
  ods select all;
  data _null_;
   set _nlvls;
   call symput ("nlvls",nlevels);
   run;
  %if &nlvls ne 2 %then %do;
   %put ERROR: Response variable, &response, must have exactly two levels.;
   %goto exit;
  %end;
  proc rank data=&data out=_ranks groups=&groups;
   var &p; ranks _rp;
   run;
  data _ranks;
   set _ranks;
   if &response=&event then _y=1; else _y=0;
   _grp=&groups-_rp;                  
   run;
  proc summary data=_ranks;
   class _grp; var _y;
   output out=_EvntProp mean=EvntProp sum=EvntCnt;
   run;
  data _missgrps;                     * Add any missing groups and set;
   do _grp=.,1 to &groups;            * statistics to zero in missing groups;
     _freq_=0; EvntProp=0; EvntCnt=0; output;
   end;
   run;
  data _EvntProp;
   merge _missgrps _EvntProp;
   by _grp;
   run;
  data &out;
   set _EvntProp nobs=_n;
   retain NObs TotEvntpct TotEvntCnt NumGroups;
   if _n_=1 then do;
    NObs=_freq_; TotEvntPct=EvntProp*100; TotEvntCnt=EvntCnt;
    NumGroups=_n-1;
    delete;
   end;
   else do;
    SelectedPct=_grp*100/NumGroups;
    Percentile=100-(_grp-1)*100/NumGroups;
    CumEvntCnt+EvntCnt;
    CumGrpCnt+_freq_;
    /* Percent Response */
    PctResp=100*EvntProp;                  
    BasePctResp=TotEvntPct;               
    /* Cumulative Percent Response */
    if CumGrpCnt=0 then CumPctResp=0; else
    CumPctResp=100*(CumEvntCnt/CumGrpCnt);
    BaseCumPctResp=TotEvntPct;            
    /* Percent Captured */
    PctCaptured=100*(EvntCnt/TotEvntCnt);  
    BasePctCaptured=100*_freq_/NObs;
    /* Cumulative Percent Captured */
    CumPctCaptured=100*(CumEvntCnt/TotEvntCnt);
    BaseCumPctCaptured=100*CumGrpCnt/NObs;
    /* Lift */
    Lift=PctResp/TotEvntPct;                  
    BaseLift=1;
   
    /* Cumulative Lift */
    CumLift=CumPctResp/TotEvntPct;            
    BaseCumLift=1;
    /* Gain */
    Gain=100*(Lift-1);                        
    BaseGain=0;
    /* Cumulative Gain */
    CumGain=100*(CumLift-1);                  
    BaseCumGain=0;
    drop _type_;
   end;
   label selectedpct="Selected Percent"
         CumLift="Cumulative Lift"
         PctCaptured="Percent Captured"
         _grp="Group"
         ;
   run;
   %if %upcase(%substr(&graph,1,1))=N %then %goto exit;
   proc template;
      define statgraph GainLiftPanel;
      mvar _xvar;
      begingraph / designheight=defaultdesignwidth;
         entrytitle "Gains and Lift Plots" / pad=(bottom=10);
         layout lattice / rows=4 columns=2 columndatarange=union;
            column2headers;
              entry textattrs=(weight=bold) "Cumulative";
              entry textattrs=(weight=bold) "NonCumulative";
            endcolumn2headers;
            rowheaders;
              entry textattrs=(weight=bold) "Gain";
              entry textattrs=(weight=bold) "Lift";
              entry textattrs=(weight=bold) '%Captured';
              entry textattrs=(weight=bold) '%Response';
            endrowheaders;
            columnaxes;
              columnaxis / griddisplay=&grid
                           discreteopts=(tickvaluefitpolicy=thin);
              columnaxis / griddisplay=&grid
                           discreteopts=(tickvaluefitpolicy=thin);
            endcolumnaxes;
         *Row 1;
            layout overlay / yaxisopts=(display=(line ticks tickvalues)
                   griddisplay=&grid);
              %if %upcase(%substr(&graph,1,1))=L %then %do;
                seriesplot y=BaseCumGain x=_xvar / lineattrs=GraphData2;
                seriesplot y=CumGain     x=_xvar / lineattrs=GraphData1;
              %end;
              %else %do;
                barchartparm y=CumGain     x=_xvar;
                seriesplot y=BaseCumGain x=_xvar / lineattrs=GraphData2;
              %end;
              endlayout;
            layout overlay / yaxisopts=(display=(line ticks tickvalues)
                   griddisplay=&grid);
              %if %upcase(%substr(&graph,1,1))=L %then %do;
                seriesplot y=BaseGain x=_xvar / lineattrs=GraphData2;
                seriesplot y=Gain     x=_xvar / lineattrs=GraphData1;
              %end;
              %else %do;
                barchartparm y=Gain     x=_xvar;
                seriesplot y=BaseGain x=_xvar / lineattrs=GraphData2;
              %end;
              endlayout;
         *Row 2;
            layout overlay / yaxisopts=(display=(line ticks tickvalues)
                   griddisplay=&grid);
              %if %upcase(%substr(&graph,1,1))=L %then %do;
                seriesplot y=BaseCumLift x=_xvar / lineattrs=GraphData2;
                seriesplot y=CumLift     x=_xvar / lineattrs=GraphData1;
              %end;
              %else %do;
                barchartparm y=CumLift     x=_xvar;
                seriesplot y=BaseCumLift x=_xvar / lineattrs=GraphData2;
              %end;
              endlayout;
            layout overlay / yaxisopts=(display=(line ticks tickvalues)
                   griddisplay=&grid);
              %if %upcase(%substr(&graph,1,1))=L %then %do;
                seriesplot y=BaseLift x=_xvar / lineattrs=GraphData2;
                seriesplot y=Lift     x=_xvar / lineattrs=GraphData1;
              %end;
              %else %do;
                barchartparm y=Lift     x=_xvar;
                seriesplot y=BaseLift x=_xvar / lineattrs=GraphData2;
              %end;
              endlayout;
         *Row 3;
            layout overlay / yaxisopts=(display=(line ticks tickvalues)
                   griddisplay=&grid);
              %if %upcase(%substr(&graph,1,1))=L %then %do;
                seriesplot y=BaseCumPctCaptured x=_xvar / lineattrs=GraphData2;
                seriesplot y=CumPctCaptured     x=_xvar / lineattrs=GraphData1;
              %end;
              %else %do;
                barchartparm y=CumPctCaptured     x=_xvar;
                seriesplot y=BaseCumPctCaptured x=_xvar / lineattrs=GraphData2;
              %end;
              endlayout;
            layout overlay / yaxisopts=(display=(line ticks tickvalues)
                   griddisplay=&grid);
              %if %upcase(%substr(&graph,1,1))=L %then %do;
                seriesplot y=BasePctCaptured x=_xvar / lineattrs=GraphData2;
                seriesplot y=PctCaptured     x=_xvar / lineattrs=GraphData1;
              %end;
              %else %do;
                barchartparm y=PctCaptured     x=_xvar;
                seriesplot y=BasePctCaptured x=_xvar / lineattrs=GraphData2;
              %end;
              endlayout;
         *Row 4;
            layout overlay / yaxisopts=(display=(line ticks tickvalues)
                   griddisplay=&grid);
              %if %upcase(%substr(&graph,1,1))=L %then %do;
                seriesplot y=BaseCumPctResp x=_xvar / lineattrs=GraphData2;
                seriesplot y=CumPctResp     x=_xvar / lineattrs=GraphData1;
              %end;
              %else %do;
                barchartparm y=CumPctResp     x=_xvar;
                seriesplot y=BaseCumPctResp x=_xvar / lineattrs=GraphData2;
              %end;
              endlayout;
            layout overlay / yaxisopts=(display=(line ticks tickvalues)
                   griddisplay=&grid);
              %if %upcase(%substr(&graph,1,1))=L %then %do;
                seriesplot y=BasePctResp x=_xvar / name="Baseline" legendlabel="Baseline" lineattrs=GraphData2;
                seriesplot y=PctResp     x=_xvar / lineattrs=GraphData1;
              %end;
              %else %do;
                barchartparm y=PctResp     x=_xvar;
                seriesplot y=BasePctResp x=_xvar / name="Baseline" legendlabel="Baseline" lineattrs=GraphData2;
              %end;
              endlayout;
            sidebar;
              discretelegend "Baseline" ;
            endsidebar;
         endlayout;
      endgraph;
      end;
      run;
   proc template;
      define statgraph GainLiftPlot;
      mvar _title _yvar _xvar _baseline;
      begingraph;
         entrytitle _title;
         layout overlay / xaxisopts=(griddisplay=&grid)
                yaxisopts=(display=(line ticks tickvalues) griddisplay=&grid);
           %if %upcase(%substr(&graph,1,1))=L %then %do;
             seriesplot y=_baseline x=_xvar / name="Baseline" legendlabel="Baseline" lineattrs=GraphData2;
             seriesplot y=_yvar     x=_xvar / lineattrs=GraphData1;
           %end;
           %else %do;
             barchartparm y=_yvar     x=_xvar;
             seriesplot y=_baseline x=_xvar / name="Baseline" legendlabel="Baseline" lineattrs=GraphData2;
           %end;
           discretelegend "Baseline";
         endlayout;
      endgraph;
      end;
      run;
   /* Panel of plots requested */
   %if %upcase(%substr(&panel,1,1))=Y %then %do;
      proc sgrender data=&out template=GainLiftPanel;
        run;
   %end;
   /* Specific plot requested */
   %else %if &oneplot ne %then %do;
      %oneplot(&oneplot)
   %end;
   /* All plots, unpaneled, requested */
   %else %do;
      %oneplot(CG)
      %oneplot(GA)
      %oneplot(CL)
      %oneplot(LI)
      %oneplot(CC)
      %oneplot(PC)
      %oneplot(CR)
      %oneplot(PR)
   %end;
   %exit:
   options &_opts;
  %mend GainLift;

二维码

扫码加我 拉你入群

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

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

关键词:lift cumulative percentile Statistics macroname

沙发
angelfyh 发表于 2013-8-21 19:33:29

藤椅
angelfyh 发表于 2013-8-22 16:08:10

板凳
jingju11 发表于 2013-8-23 06:37:10
the code is long!!! I have programmed about gain, lift, etc charts in logistic models but lines of code should be less than 50. JingJu

报纸
angelfyh 发表于 2013-8-23 09:50:31
jingju11 发表于 2013-8-23 06:37
the code is long!!! I have programmed about gain, lift, etc charts in logistic models but lines of c ...
我到现在也还没有看明白怎么计算呀,求教你的方法,能给我分享一下吗?昨天捯饬了一天也没有搞出来啊,不知道怎么算累积的LIFT,GAINS曲线

地板
jingju11 发表于 2013-8-24 03:56:31
you may refer to this code.Jingju
  1. %macro GLplot(_groups=);
  2. proc logistic inmodel =sasuser.fixRate_logiMdl_installLoan;
  3.    score data =Extnl_wide_m_logistic out =logistic_score_extn;
  4. run;
  5. proc rank data =logistic_score_extn out =GL_extn_0&_groups. groups =&_groups descending;
  6.    var P_1; ranks P_1_r&_groups;
  7. run;
  8. proc sort data =GL_extn_0&_groups.; by P_1_r&_groups. P_1;run;
  9. data GL_extn_1&_groups.;
  10.    if _n_ = 1 then do i =1 to nobs;
  11.     set GL_extn_0&_groups. nobs =nobs;
  12.     E ++(RateGE005); N ++1;
  13.            end;
  14.    P = E/N;
  15.    set GL_extn_0&_groups. end =Eof; by P_1_r&_groups.;
  16.    ei ++(RateGE005); ni ++1;
  17.    retain _y1_Lift_max _y1_Gain_max;
  18.    if last.P_1_r&_groups. then do;
  19.       cei ++ei;cni ++ni;
  20.       /*Cumulative %captured*/
  21.       _y0_perCaptured =(100*cni/N);_y1_perCaptured =(100*cei/E);
  22.       /*Cumulative %response*/
  23.       _y0_perResponse =(100*P);_y1_perResponse =(100*cei/cni );
  24.       /*Cumulative Lift*/
  25.       _y0_Lift =(1);_y1_Lift =((cei/cni)/P);_y1_Lift_max =max(_y1_Lift_max, _y1_Lift);
  26.       /*Cumulative Gains*/
  27.       _y0_Gain =(0);_y1_Gain =100*(_y1_Lift-1);_y1_Gain_max =max(_y1_Gain_max, _y1_Gain);
  28.       _x =100/&_groups*(P_1_r&_groups+1);
  29.       output GL_extn_1&_groups.;
  30.       ei =0; ni =0;
  31.    end;
  32.    if Eof then do;
  33.     call symputx('_y1_Lift_max', ceil(_y1_Lift_max)          );
  34.     call symputx('_y1_Gain_max', ceil(_y1_gain_max/100)*100  );
  35.            end;  
  36.         run;
  37. %let x_spec =%str(xaxis grid values =(0 to 100 by 10) label =%"Selected Percent%";);
  38. proc sgplot data =GL_extn_1&_groups. noautolegend;/*cumulative % captured*/
  39.    series x =_x y =_y1_perCaptured/markers markerattrs=(symbol =starfilled ) legendLabel ="100 * cum_Ei / E";
  40.    series x =_x y =_y0_perCaptured/markerattrs=(symbol =circle) legendLabel ="100 * cum_Ni / N";   
  41.    &X_spec.;yaxis grid values =(0 to 100 by 10) label ="% Captured         ";
  42. run;
  43. proc sgplot data =GL_extn_1&_groups. noautolegend;/*cumulative % captured*/
  44.    vbar  _x /response =_y1_perCaptured legendLabel ="100 * cum_Ei / E";
  45.    vline _x /response =_y0_perCaptured markers markerattrs =(color =red symbol =circle) lineattrs =(pattern = 2 color =red) name ="vline" legendLabel ="Baseline";   
  46.    &X_spec.;yaxis grid values =(0 to 100 by 10) label ="% Captured         ";
  47. run;
  48. proc sgplot data =GL_extn_1&_groups. noautolegend;/*Cumulative % Reponse*/
  49.    series x =_x y =_y1_perResponse/markers markerattrs=(symbol =starfilled ) legendLabel ="100 * cum_Ei / cum_Ni";
  50.    series x =_x y =_y0_perResponse/markerattrs=(symbol =circle) legendLabel ="100 * P                 ";
  51.    &X_spec.;yaxis grid values =(0 to 100 by 10) label ="Cumulative % Response";
  52. run;
  53. proc sgplot data =GL_extn_1&_groups. noautolegend;/*Cumulative Lift*/
  54.    series x =_x y =_y1_Lift/markers markerattrs=(symbol =starfilled) legendLabel ="(cum_Ei / cum_Ni) / P";
  55.    series x =_x y =_y0_Lift/markerattrs=(symbol =circle) legendLabel ="Baseline == 1     ";   
  56.    &X_spec.;yaxis grid values =(1.0 to &_y1_Lift_max  by 0.5) label ="Cumulative Lift " offsetmin =.05;
  57. run;
  58. proc sgplot data =GL_extn_1&_groups. noautolegend; /*Cumulative Gains*/
  59.    series x =_x y =_y1_Gain/markers markerattrs=(symbol =starfilled) legendLabel ="100 * [(cum_Ei / cum_Ni) / P - 1]";
  60.    series x =_x y =_y0_Gain/markerattrs=(symbol =circle) legendLabel ="Baseline == 0                    ";
  61.    &X_spec.;yaxis grid values =(0 to &_y1_Gain_max by 50) label ="Cumulative Gains"  offsetmin =.05;
  62. run;
  63. %mend GLplot;
复制代码
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
webgu + 100 + 100 + 3 + 3 + 3 太有耐心了。

总评分: 经验 + 100  论坛币 + 100  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

7
angelfyh 发表于 2013-8-24 09:26:22
jingju11 发表于 2013-8-24 03:56
you may refer to this code.Jingju
灰常感谢啊,我昨天画了个挫的,等下认真学习下你的代码啊,O(∩_∩)O~

8
幽柠冷爵 发表于 2013-8-24 21:04:30

9
wps930720 在职认证  发表于 2020-3-16 15:24:51
jingju11 发表于 2013-8-24 03:56
you may refer to this code.Jingju
这个数据集加工逻辑应该有问题,i、_y1_Lift_max等字段都为缺失
  1. MPRINT(GLPLOT):   proc sgplot data =GL_extn_110 noautolegend;
  2. MPRINT(GLPLOT):   series x =_x y =_y1_perResponse/markers markerattrs=(symbol =starfilled ) legendLabel ="100 * cum_Ei /
  3. cum_Ni";
  4. MPRINT(GLPLOT):   series x =_x y =_y0_perResponse/markerattrs=(symbol =circle) legendLabel ="100 * P                 ";
  5. SYMBOLGEN:  宏变量 X_SPEC 解析为 xaxis grid values =(0 to 100 by 10) ;
  6. SYMBOLGEN:  上一值中宏应引用的某些字符在显示时未加引用。
  7. MPRINT(GLPLOT):   xaxis grid values =(0 to 100 by 10) ;
  8. MPRINT(GLPLOT):  ;
  9. MPRINT(GLPLOT):  yaxis grid values =(0 to 100 by 10) label ="Cumulative % Response";
  10. MPRINT(GLPLOT):   run;

  11. NOTE: “PROCEDURE SGPLOT”所用时间(总处理时间):
  12.       实际时间          0.09 秒
  13.       CPU 时间          0.04 秒
  14.       
  15. NOTE: 从数据集 WORK.GL_EXTN_110. 读取了 10 个观测

  16. SYMBOLGEN:  宏变量 _GROUPS 解析为 10
  17. MPRINT(GLPLOT):   proc sgplot data =GL_extn_110 noautolegend;
  18. MPRINT(GLPLOT):   series x =_x y =_y1_Lift/markers markerattrs=(symbol =starfilled) legendLabel ="(cum_Ei / cum_Ni) / P";
  19. MPRINT(GLPLOT):   series x =_x y =_y0_Lift/markerattrs=(symbol =circle) legendLabel ="Baseline == 1     ";
  20. SYMBOLGEN:  宏变量 X_SPEC 解析为 xaxis grid values =(0 to 100 by 10) ;
  21. SYMBOLGEN:  上一值中宏应引用的某些字符在显示时未加引用。
  22. MPRINT(GLPLOT):   xaxis grid values =(0 to 100 by 10) ;
  23. MPRINT(GLPLOT):  ;
  24. SYMBOLGEN:  宏变量 _Y1_LIFT_MAX 解析为 .
  25. NOTE: 由宏变量 _Y1_LIFT_MAX 生成行。
  26. 26          .
  27.             _
  28.             22
  29.             200
  30. MPRINT(GLPLOT):  yaxis grid values =(1.0 to . by 0.5) label ="Cumulative Lift " offsetmin =.05;
  31. MPRINT(GLPLOT):   run;

  32. ERROR 22-322: 语法错误,期望下列之一: 数值常数, 日期时间常数.  

  33. ERROR 200-322: 该符号不可识别,将被忽略。

  34. NOTE: 由于出错,SAS 系统停止处理该步。
  35. NOTE: “PROCEDURE SGPLOT”所用时间(总处理时间):
  36.       实际时间          0.00 秒
  37.       CPU 时间          0.00 秒
复制代码

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 15:33