BookmarkSubscribeRSS Feed
baabed
Calcite | Level 5

Hi everyone,

 

I'm trying to run random forest models & cross validating on samples from the training set  in SAS Enterprise Miner 15.1 using the "Start Groups" and "End Groups" nodes.

Every time I run the flow I receive an error that says "Run time error was encountered."

When checking the log the first error I find is "ERROR: The requested table is too large to process." and after that step  "NOTE: The SAS System stopped processing this step because of errors." Does anyone have an idea how to resolve this issue?

 

Would appreciate any help!

Thank you in advance.

 

*------------------------------------------------------------*
Date:                March 05, 2020
Time:                14:30:30
Site:                70212334
Platform:            X64_SR12R2
Maintenance Release: 9.04.01M6P110718
EM Version:          15.1
* 
*------------------------------------------------------------*
* Training Log
Date:                March 05, 2020
Time:                14:30:27
*------------------------------------------------------------*
15231  proc freq data=EMWS4.Grp_VariableSet noprint;
15232  table ROLE*LEVEL/out=WORK.GrpMETA;
15233  run;
 
NOTE: There were 15 observations read from the data set EMWS4.GRP_VARIABLESET.
NOTE: The data set WORK.GRPMETA has 5 observations and 4 variables.
NOTE: PROCEDURE FREQ used (Total process time):
      real time           0.03 seconds
      cpu time            0.03 seconds
 
 
15234  proc print data=WORK.GrpMETA label noobs;
15235  var ROLE LEVEL COUNT;
15236  label ROLE = "%sysfunc(sasmsg(sashelp.dmine, meta_role_vlabel, NOQUOTE))" LEVEL = "%sysfunc(sasmsg(sashelp.dmine, meta_level_vlabel, NOQUOTE))" COUNT = "%sysfunc(sasmsg(sashelp.dmine, rpt_count_vlabel, NOQUOTE))";
15237  title9 ' ';
15238  title10 "%sysfunc(sasmsg(sashelp.dmine, rpt_varSummary_title  , NOQUOTE))";
15239  run;
 
NOTE: There were 5 observations read from the data set WORK.GRPMETA.
NOTE: The PROCEDURE PRINT printed page 1.
NOTE: PROCEDURE PRINT used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
 
 
15240  title10;
 
15241  %let EMEXCEPTIONSTRING=;
PERFORMANCE  DETAILS
15581  *------------------------------------------------------------*;
15582  * Grp: Generation of macros and macro variables;
15583  * To see the code generated, set the EM_DEBUG macro variable to SOURCE or _ALL_;
15584  *------------------------------------------------------------*;
 
15585  %let EMEXCEPTIONSTRING=;
15586  *------------------------------------------------------------*;
15587  * TRAIN: Grp;
15588  *------------------------------------------------------------*;
15589  %let EM_ACTION = TRAIN;
15590  %let syscc = 0;
15591  %macro main;
15592
15593     filename temp catalog 'sashelp.emutil.gp_macros.source';
15594     %include temp;
15595     filename temp;
15596
15597     %SetProperties;
15598
15599     %if %upcase(&EM_ACTION) = CREATE %then %do;
15600
15601         filename temp catalog 'sashelp.emutil.gp_create.source';
15602         %include temp;
15603         filename temp;
15604
15605         %create;
15606     %end;
15607     %else
15608     %if %upcase(&EM_ACTION) = TRAIN %then %do;
15609
15610         filename temp catalog 'sashelp.emutil.gp_train.source';
15611         %include temp;
15612         filename temp;
15613
15614         %train;
15615     %end;
15616     %else
15617     %if %upcase(&EM_ACTION) = SCORE %then %do;
15618
15619         filename temp catalog 'sashelp.emutil.gp_score.source';
15620         %include temp;
15621         filename temp;
15622
15623         %score;
15624     %end;
15625     %else
15626     %if %upcase(&EM_ACTION) = REPORT %then %do;
15627
15628         filename temp catalog 'sashelp.emutil.gp_report.source';
15629         %include temp;
15630         filename temp;
15631
15632         %report;
15633
15634     %end;
15635     %else
15636     %if %upcase(&EM_ACTION) = POSTLOOP %then %do;
15637
15638         filename temp catalog 'sashelp.emutil.gp_postloop.source';
15639         %include temp;
15640         filename temp;
15641
15642         %postloop;
15643
15644     %end;
15645
15646     %doendm:
15647  %mend main;
15648
15649  %main;
NOTE: %INCLUDE (level 1) file TEMP is file SASHELP.EMUTIL.GP_MACROS.SOURCE.
15650 +%macro SetProperties;
15651 +   %em_checkmacro(name=EM_PROPERTY_MODE,            global=Y, value=STRATIFY);
15652 +   %em_checkmacro(name=EM_PROPERTY_TARGETGROUP,     global=Y, value=Y);
15653 +   %em_checkmacro(name=EM_PROPERTY_INDEXCOUNT,      global=Y, value=10);
15654 +   %em_checkmacro(name=EM_PROPERTY_MINIMUMOBS,      global=Y, value=10);
15655 +   %em_checkmacro(name=EM_PROPERTY_SIZETYPE,        global=Y, value=PERCENT);
15656 +   %em_checkmacro(name=EM_PROPERTY_SIZEOBS,         global=Y, value=.);
15657 +   %em_checkmacro(name=EM_PROPERTY_SIZEPERCENT,     global=Y, value=10);
15658 +%mend SetProperties;
15659 +
NOTE: %INCLUDE (level 1) ending.
NOTE: Fileref TEMP has been deassigned.
NOTE: %INCLUDE (level 1) file TEMP is file SASHELP.EMUTIL.GP_TRAIN.SOURCE.
15660 +%macro scoreValidTest(data=, out=);
15662 +   %if ("&data" ne "") and (%sysfunc(exist(&data, VIEW)) or %sysfunc(exist(&data))) %then %do;
15663 +       data &out / view = &out;
15664 +          retain _RESAMP_ 1;
15665 +          set &data;
15666 +       run;
15667 +   %end;
15669 +%mend scoreValidTest;
15671 +%macro getVariables;
15672 +   %if "&emloopnumber" = "1" %then %do;
15673 +       data _null_;
15674 +          retain numgoup 0;
15675 +          set &em_data_variableset end=eof;
15676 +          %if &em_num_target = 1 %then %do;
15677 +              %if &EM_PROPERTY_MODE = BOOSTING %then %do;
15678 +                  where (role = 'TARGET' and level ^= 'INTERVAL' and grouprole in('BOOST', 'DEFAULT'));
15679 +                  if role eq 'TARGET' then call symput('emboostvar', strip(NAME));
15680 +              %end;
15681 +              %else
15682 +              %if &EM_PROPERTY_MODE = BAGGING %then %do;
15683 +                  where (role = 'TARGET' and grouprole in('BAG', 'DEFAULT'));
15684 +                  if role eq 'TARGET' then call symput('embagvar', strip(NAME));
15685 +              %end;
15686 +          %end;
15687 +          %else %do;
15688 +              where (grouprole= 'GROUP' or (role = 'TARGET' and grouprole in('BAG', 'BOOST')) or (role = 'SEGMENT' and grouprole = 'DEFAULT'));
15689 +              if grouprole eq 'BAG' then call symput('embagvar', strip(NAME));
15690 +              else
15691 +              if grouprole eq 'BOOST' then call symput('emboostvar', strip(NAME));
15692 +          %end;
15693 +          if grouprole = 'GROUP' or (role = 'SEGMENT' and grouprole = 'DEFAULT') then do;
15694 +             call symput('emgroupvar', strip(symget('emgroupvar'))!!' '!!strip(NAME));
15695 +             numgroup + 1;
15696 +          end;
15697 +          if eof then call symput('emnumgroupvar', strip(put(numgroup, best.)));
15698 +       run;
15699 +    %end;
15700 +    %else %do;
15701 +          %if "&EM_PROPERTY_MODE" = "STRATIFY" or "&EM_PROPERTY_MODE" = "CROSSVALIDATION"  %then %do;
15702 +            data _null_;
15703 +               retain numgoup 0;
15704 +               set &em_data_variableset end=eof;
15705 +               where (grouprole= 'GROUP' or (role = 'SEGMENT' and grouprole = 'DEFAULT'));
15706 +               call symput('emgroupvar', strip(symget('emgroupvar'))!!' '!!strip(NAME));
15707 +               numgroup + 1;
15708 +               if eof then call symput('emnumgroupvar', strip(put(numgroup, best.)));
15709 +            run;
15710 +          %end;
15711 +            %else
15712 +        %if &EM_PROPERTY_MODE = BOOSTING %then %do;
15713 +            %em_getName(key=BOOSTINFO,   type=DATA);
15714 +            %if %sysfunc(exist(&em_user_boostinfo)) %then %do;
15715 +                data _null_;
15716 +                   set &em_user_boostinfo;
15717 +                   call symput('emboostvar', strip(_TARGET_));
15718 +                run;
15719 +            %end;
15720 +        %end;
15721 +        %else
15722 +            %if &EM_PROPERTY_MODE = BAGGING %then %do;
15723 +                %em_getName(key=BAGINFO,   type=DATA);
15724 +                %if %sysfunc(exist(&em_user_baginfo)) %then %do;
15725 +                    data _null_;
15726 +                       set &em_user_baginfo;
15727 +                      call symput('embagvar', strip(_TARGET_));
15728 +                    run;
15729 +                %end;
15730 +            %end;
15731 +    %end;
15732 +%mend getVariables;
15734 +%macro gp_bag(targetname=);
15735 +   %if %index(&EM_DEBUG, _ALL_) %then %do;
15736 +        %put LOOP MODE:   &emloopmode ;
15737 +        %put LOOP NUMBER: &emloopnumber;
15738 +        %put BAGGING TARGET: &targetname;
15739 +   %end;
15741 +   filename temp catalog 'sashelp.emutil.gp_boostmacros.source';
15742 +   %include temp;
15743 +   filename temp;
15745 +   %em_getName(key=BAGINFO,    type=DATA);
15746 +   %em_getName(key=EMLOOPINFO, type=DATA);
15748 +   %if &emloopnumber = 1 %then %do;
15749 +       filename gpDelta "&EM_FILE_CDELTA_TRAIN";
15750 +       data _null_;
15751 +          file gpdelta;
15752 +          put "if ROLE = 'TARGET' and NAME ne '&targetName' then delete;";
15753 +          put "else if upcase(NAME) eq '_RESAMP_' then do;";
15754 +          put "     LABEL='Bootstrap Frequency'; LEVEL='INTERVAL'; ROLE='FREQ';";
15755 +          put "end;";
15756 +       run;
15757 +       filename gpdelta;
15759 +       %if %sysfunc(exist(&em_user_baginfo)) %then %do;
15760 +           proc datasets lib=&em_lib nolist;
15761 +              delete &em_nodeid._baginfo;
15762 +           run;
15763 +       %end;
15765 +       %if "%em_freq" ne "" %then %do;
15766 +           proc means data=&em_import_data sum;
15767 +              var %em_freq;
15768 +              output out = _tempds sum=sumfreq;
15769 +           run;
15770 +           quit;
15771 +           data _null_;
15772 +              set _tempDs;
15773 +              call symput('_sumfreq', put(sumfreq, best12.));
15774 +           run;
15775 +       %end;
15776 +       %else %do;
15777 +           proc sql noprint;
15778 +              select count(*) into :_sumfreq
15779 +              from &em_import_data;
15780 +           quit;
15781 +       %end;
15783 +       %if "&em_property_SizeType" eq "PERCENT" %then %do;
15784 +           data _null_;
15785 +              call symput('_size', put(round(&_sumfreq*&em_property_sizepercent/100), best12.));
15786 +           run;
15787 +       %end;
15788 +       %else
15789 +           %let _size = &em_property_sizeobs;
15791 +       data &em_user_baginfo;
15792 +          length _LOOP_ 8 _TARGET_ $32 _SUMFREQ_ 8 _SIZE_ 8;
15793 +          _LOOP_     =&EM_PROPERTY_INDEXCOUNT;
15794 +          _TARGET_   ="&targetname";
15795 +          _SUMFREQ_  =&_sumfreq;
15796 +           _SIZE_    = &_size;
15797 +          output;
15798 +       run;
15799 +       data &em_user_emloopinfo;
15800 +          length MODE $8;
15801 +          label MODE     = "%sysfunc(sasmsg(sashelp.dmine, rpt_mode_vlabel,       NOQUOTE))"
15802 +                _LOOP_   = "%sysfunc(sasmsg(sashelp.dmine, rpt_groupIndex_vlabel, NOQUOTE))"
15803 +               _TARGET_ = "%sysfunc(sasmsg(sashelp.dmine, rpt_target_vlabel,     NOQUOTE))";
15804 +           set &em_user_baginfo(keep=_LOOP_ _TARGET_);
15805 +           MODE='Bagging';
15806 +       run;
15808 +       data &em_data_eminfo;
15809 +          length TARGET KEY $32  DATA $43;
15810 +          TARGET=''; KEY='BAGINFO'; DATA="&em_nodeid"; output;
15811 +       run;
15812 +   %end;
15813 +   %else %do;
15814 +      data _null_;
15815 +         set &em_user_baginfo;
15816 +         call symput('_sumfreq', put(_sumfreq_, best12.));
15817 +         call symput('_size', put(_size_, best12.));
15818 +      run;
15819 +   %end;
15821 +   %let bagsumFreq  = &_sumFreq;
15822 +   %let bagSize     = &_Size;
15824 +   %embag( _tra=&em_export_train, _train=&em_import_data, _seed=&em_property_randomseed, _freq=%em_freq,
15825 +           _sumfreq=&bagsumfreq, _size=&bagsize, _loop=&emloopnumber);
15827 +   %scoreValidTest(data=&em_import_validate, out=em_export_validate);
15828 +   %scoreValidTest(data=&em_import_test,     out=em_export_test);
15830 +   %doendbg:
15832 +%mend gp_bag;
15835 +%macro gp_boost(targetname=);
15836 +   %if %index(&EM_DEBUG, _ALL_) %then %do;
15837 +       %put LOOP MODE:   &emloopmode ;
15838 +       %put LOOP NUMBER: &emloopnumber;
15839 +        %put BAGGING TARGET: &targetname;
15840 +   %end;
15842 +   filename temp catalog 'sashelp.emutil.gp_boostmacros.source';
15843 +   %include temp;
15844 +   filename temp;
15846 +   %em_getname(key=EMLOOPINFO, type=DATA);
15847 +   %em_getname(key=BOOSTWEIGHT, type=DATA);
15848 +   %em_getname(key=BOOSTSCORE,  type=DATA);
15849 +   %em_getName(key=BOOSTINFO,   type=DATA);
15851 +   %if &emloopnumber = 1 %then %do;
15852 +       filename gpDelta "&EM_FILE_CDELTA_TRAIN";
15853 +       data _null_;
15854 +          file gpdelta;
15855 +          put "if ROLE = 'TARGET' and NAME ne '&targetName' then delete;";
15856 +          put "else if upcase(NAME) eq '_RESAMP_' then do;";
15857 +          put "     LABEL='Arcing Frequency'; LEVEL='INTERVAL'; ROLE='FREQ';";
15858 +          put "end;";
15859 +       run;
15860 +       filename gpdelta;
15862 +       %let deleteString =;
15863 +       %if %sysfunc(exist(&em_user_boostweight)) %then %let deleteString = &deleteString &em_nodeid._boostweight;
15864 +       %if %sysfunc(exist(&em_user_boostscore))  %then %let deleteString = &deleteString &em_nodeid._boostscore;
15865 +       %if "&deleteString" ne "" %then %do;
15866 +           proc datasets lib=&em_lib nolist;
15867 +              delete &deleteString;
15868 +           run;
15869 +       %end;
15871 +       %emboost0( _train=&em_import_data, _dmboods=&em_user_boostweight, _target=&targetname, _freq=%em_freq);
15873 +       data &em_user_boostinfo;
15874 +          length _LOOP_ 8 _TARGET_ $32 _DMBOOST_DIVISOR_ 8 _SUMFREQ_ 8;
15875 +          _LOOP_            =&EM_PROPERTY_INDEXCOUNT;
15876 +          _TARGET_          ="&targetname";
15877 +          _DMBOOST_DIVISOR_ =&_dmboodiv;
15878 +          _SUMFREQ_         =&_sumfreq;
15879 +       run;
15880 +       data &em_user_emloopinfo;
15881 +          length MODE $8;
15882 +          label MODE     = "%sysfunc(sasmsg(sashelp.dmine, rpt_mode_vlabel,       NOQUOTE))"
15883 +                _LOOP_   = "%sysfunc(sasmsg(sashelp.dmine, rpt_groupIndex_vlabel, NOQUOTE))"
15884 +               _TARGET_ = "%sysfunc(sasmsg(sashelp.dmine, rpt_target_vlabel,     NOQUOTE))";
15885 +           set &em_user_boostinfo(keep=_LOOP_ _TARGET_);
15886 +           MODE='Boosting';
15887 +       run;
15889 +       data &em_data_eminfo;
15890 +          length TARGET KEY $32  DATA $43;
15891 +          TARGET=''; KEY='BOOSTINFO'; DATA="&em_nodeid"; output;
15892 +       run;
15894 +   %end;
15895 +   %else %do;
15896 +       %global _dmboodiv;
15897 +       %let dmboosf = %upcase(&targetname);
15898 +       %if %sysfunc(length(&targetname))> 30 %then
15899 +           %let dmboosf =  %substr(&targetname, 1, 30);
15901 +       data _null_;
15902 +          set &em_user_boostinfo;
15903 +          call symput('_SUMFREQ',  strip(put(_sumfreq_,best12.)));
15904 +       run;
15906 +       %emboost2(_freq=%em_freq, _dmboods=&em_user_boostweight, _dmensds=&em_user_boostscore, _dmboosf=&dmboosf, _sumfreq=&_sumfreq);
15908 +       data &em_user_boostinfo;
15909 +          set &em_user_boostinfo;
15910 +          _DMBOOST_DIVISOR_ =&_dmboodiv;
15911 +       run;
15913 +       %emboost1(_tra=&em_export_train, _TRAIN=&em_import_data, _FREQ=%em_freq, _dmboods=&em_user_boostweight, _dmboodiv=&_dmboodiv);
15915 +   %end;
15917 +    %scoreValidTest(data=&em_import_validate, out=em_export_validate);
15918 +    %scoreValidTest(data=&em_import_test,     out=em_export_test);
15920 +   %doendbst:
15922 +%mend gp_boost;
15924 +%macro gp_group(numgroupvar=, groupvar=);
15925 +   %em_getname(key=GROUPINFO, type=DATA);
15926 +   %em_getName(key=LOOPINFO,  type=DATA);
15927 +   %em_getName(key=EMGROUPINFO, type=DATA);
15929 +   %if &emloopnumber=1 or ^%sysfunc(exist(&em_user_groupinfo)) %then %do;
15930 +       ods listing close;
15931 +       %if &numgroupvar = 1 %then %do;
15932 +           ods output onewayfreqs=temp;
15933 +       %end;
15934 +       %else %do;
15935 +           ods output crosstabfreqs=temp;
15936 +       %end;
15937 +       proc freq data=&em_import_data;
15938 +          table
15940 +          %let tableString =;
15941 +          %let freqString  =;
15942 +          %do i=1 %to &numgroupvar;
15943 +              %let tableString = &tableString %scan(&groupvar, &i, %str( ));
15944 +              %if &i<&numgroupvar %then %let tableString = &tableString *;
15945 +              %let freqString = &freqString.1;
15946 +          %end;
15947 +          &tableString / missing;
15948 +       run;
15949 +       ods listing;
15950 +       %if &numgroupvar = 1 %then %do;
15951 +           data _null_;
15952 +              retain totalobs 0;
15953 +              set temp end=eof;
15954 +              totalobs + frequency;
15955 +              if eof then
15956 +                 call symput('_totalObs_', put(totalobs, best.));
15957 +           run;
15959 +           proc sort data=temp out=loopinfo nodupkey;
15960 +              by &groupvar;
15961 +              where frequency>=&em_property_minimumObs;
15962 +           run;
15963 +       %end;
15964 +       %else %do;
15965 +           data _null_;
15966 +              set temp;
15967 +              where _type_='00';
15968 +              call symput('_totalObs_', put(frequency, best.));
15969 +           run;
15970 +           proc sort data=temp(drop=rowpercent colpercent) out=loopinfo nodupkey;
15971 +              by &groupvar;
15972 +              where _type_="&freqString" and frequency>=&em_property_minimumObs;
15973 +           run;
15974 +       %end;
15976 +       %em_getname(key=PRECODE, type=FILE, extension=sas);
15977 +       filename _pregrp "&em_user_precode";
15979 +       %let dsid = %sysfunc(open(loopinfo));
15980 +       %do i=1 %to &numgroupvar;
15981 +           %let varname = %scan(&groupvar, &i, %str( ));
15982 +           %let varnum  = %sysfunc(varnum(&dsid, &varname));
15983 +           %let varfmt  = %sysfunc(varfmt(&dsid, &varnum));
15984 +           %if %index(&varfmt, -) %then %do;
15985 +               %let varfmt = %sysfunc(scan(&varfmt, 1,-)).;
15986 +           %end;
15988 +           %let vartype = %sysfunc(vartype(&dsid, &varnum));
15989 +           %let varlen  = %sysfunc(varlen(&dsid, &varnum));
15990 +           %let fmttype&i = &vartype;
15991 +           %let fmtlen&i  = &varlen;
15993 +           %let fmtvar&i =;
15994 +           %let fmt&i    =;
15995 +           %if "&varfmt" ne "" %then %do;
15996 +              %let fmtvar&i  = _FORMAT&i._;
15997 +              %let fmt&i     = &varfmt;
15998 +           %end;
15999 +       %end;
16000 +       %let dsid = %sysfunc(close(&dsid));
16002 +       data _null_;
16003 +          %do i=1 %to &numgroupvar;
16004 +              %if "&&fmt&i" ne "" %then %do;
16005 +                  retain len_&i 0;
16006 +              %end;
16007 +          %end;
16009 +          set loopinfo end=eof;
16010 +          file _pregrp;
16012 +          %do i=1 %to &numgroupvar;
16013 +              %let varname = %scan(&groupvar, &i, %str( ));
16014 +              %if "&&fmt&i" ne "" %then %do;
16015 +                 if length(put(&varname, &&fmt&i)) > len_&i then
16016 +                    len_&i = length(put(&varname, &&fmt&i));
16017 +              %end;
16018 +          %end;
16020 +          if eof then do;
16021 +             %do i=1 %to &numgroupvar;
16022 +                 %let varname = %scan(&groupvar, &i, %str( ));
16023 +                 %if "&&fmt&i" ne "" %then %do;
16024 +                     put "length  &&fmtvar&i" len_&i "$" len_&i ";";
16025 +                     put "drop &&fmtvar&i" len_&i ";";
16026 +                     put "&&fmtvar&i" len_&i "= strip(put(&varname, &&fmt&i));";
16027 +                     call symput('fmtnewlen'!!"&i", put(len_&i, best.));
16028 +                     call symput('fmtnewvar'!!"&i", "&&fmtvar&i"!!strip(put(len_&i, best.)));
16029 +                 %end;
16030 +              %end;
16031 +          end;
16032 +      run;
16034 +      data loopinfo;
16035 +         set loopinfo;
16036 +         %do i=1 %to &numgroupvar;
16037 +             %let varname = %scan(&groupvar, &i, %str( ));
16038 +             %if "&&fmt&i" ne "" %then %do;
16039 +                 length  &&fmtnewvar&i $&&fmtnewlen&i;
16040 +                 &&fmtnewvar&i = strip(put(&varname, &&fmt&i));
16041 +             %end;
16042 +         %end;
16043 +      run;
16044 +      filename _pregrp;
16046 +      %if (&EM_PROPERTY_TARGETGROUP= Y and &EM_NUM_TARGET>1) %then %do;
16047 +          data temp;
16048 +             length _LOOP_ 8 _WHERE_  _WHEREDESC_ $2000;
16049 +             keep _LOOP_ _WHERE_ _WHEREDESC_ FREQUENCY;
16050 +      %end;
16051 +      %else %do;
16052 +          data &em_user_groupinfo;
16053 +             length _LOOP_ 8 _TARGET_ $32 _WHERE_  _WHEREDESC_ $2000;
16054 +             keep _LOOP_ _TARGET_  _WHERE_ _WHEREDESC_ FREQUENCY;
16055 +             retain _TARGET_ '';
16056 +      %end;
16058 +          set loopinfo;
16059 +          _LOOP_= _N_;
16060 +          _WHERE_ = '';
16061 +          _WHEREDESC_  = '';
16062 +          %do i=1 %to &numgroupvar;
16063 +              %let varname = %scan(&groupvar, &i, %str( ));
16064 +              %if "&&fmt&i" eq "" %then %do;
16065 +                  %if "&&fmtType&i" eq "N" %then %do;
16066 +                      _WHERE_     = strip(_WHERE_)!!" &Varname ="!!strip(put(&varname, best12.));
16067 +                      _WHEREDESC_ = strip(_WHEREDESC_)!!" &Varname ="!!strip(put(&varname, best12.));
16068 +                   %end;
16069 +                  %else %do;
16070 +                       _WHERE_ = strip(_WHERE_)!!" &Varname ='"!!tranwrd(strip(&varname), "'", "''")!!"'";
16071 +                       _WHEREDESC_ = strip(_WHEREDESC_)!!" &Varname ="!!strip(&varname);
16072 +                  %end;
16073 +              %end;
16074 +              %else %do;
16075 +                       _WHERE_ = strip(_WHERE_)!!" &&fmtnewvar&i ='"!!tranwrd(strip(&&fmtnewvar&i), "'", "''")!!"'";
16076 +                       _WHEREDESC_ = strip(_WHEREDESC_)!!" &VarName = "!!strip(&&fmtnewvar&i);
16077 +              %end;
16078 +              %if &i < &numgroupvar %then %do;
16079 +                  _WHERE_ = strip(_WHERE_)!!' and ';
16080 +                  _WHEREDESC_ = strip(_WHEREDESC_)!!' and ';
16081 +              %end;
16082 +          %end;
16083 +          %if "&EM_PROPERTY_MODE" = "CROSSVALIDATION"  %then %do;
16084 +              _WHERE_ = '^('!!strip(_WHERE_)!!')';
16085 +              _WHEREDESC_ = '^('!!strip(_WHEREDESC_)!!')';
16086 +              FREQUENCY = &_totalobs_ - FREQUENCY;
16087 +          %end;
16088 +      run;
16090 +      %if (&EM_PROPERTY_TARGETGROUP= Y and &EM_NUM_TARGET>1) %then %do;
16091 +          data target;
16092 +             length _TARGET_ $32;
16093 +              %do i=1 %to &em_num_target;
16094 +                  %let varname = %scan(%em_target, &i, %str( ));
16095 +                  _TARGET_ = "&varname";
16096 +                  output;
16097 +              %end;
16098 +          run;
16099 +          proc sql;
16100 +             create table &em_user_groupinfo as select * from  work.temp, work.target;
16101 +          quit;
16102 +          data &em_user_groupinfo;
16103 +             set &em_user_groupinfo;
16104 +             _LOOP_=_N_;
16105 +          run;
16106 +      %end;
16108 +      data &em_data_eminfo;
16109 +         length TARGET KEY $32  DATA $43;
16110 +         TARGET=''; KEY='GROUPINFO'; DATA="&em_nodeid"; output;
16111 +      run;
16113 +      data &em_user_emloopinfo;
16114 +         set &em_user_groupinfo;
16115 +         %if (&EM_PROPERTY_TARGETGROUP= Y and &EM_NUM_TARGET>1) %then %do;
16116 +             label _LOOP_      = "%sysfunc(sasmsg(sashelp.dmine, rpt_groupIndex_vlabel, NOQUOTE))"
16117 +                   _TARGET_    = "%sysfunc(sasmsg(sashelp.dmine, rpt_target_vlabel,     NOQUOTE))"
16118 +                   _WHEREDESC_ = "%sysfunc(sasmsg(sashelp.dmine, rpt_where_vlabel,      NOQUOTE))"
16119 +                   FREQUENCY   = "%sysfunc(sasmsg(sashelp.dmine, rpt_count_vlabel,      NOQUOTE))";
16120 +             keep _LOOP_ _TARGET_ _WHEREDESC_ FREQUENCY;
16121 +         %end;
16122 +         %else %do;
16123 +             label _LOOP_      = "%sysfunc(sasmsg(sashelp.dmine, rpt_groupIndex_vlabel, NOQUOTE))"
16124 +                   _TARGET_    = "%sysfunc(sasmsg(sashelp.dmine, rpt_target_vlabel,     NOQUOTE))"
16125 +                   _WHEREDESC_ = "%sysfunc(sasmsg(sashelp.dmine, rpt_where_vlabel,      NOQUOTE))"
16126 +                   FREQUENCY   = "%sysfunc(sasmsg(sashelp.dmine, rpt_count_vlabel,      NOQUOTE))";
16127 +             keep _LOOP_ _WHEREDESC_ FREQUENCY;
16128 +         %end;
16129 +      run;
16131 +      proc datasets lib=work nolist;
16132 +          delete temp loopinfo
16133 +          %if (&EM_PROPERTY_TARGETGROUP= Y and &EM_NUM_TARGET>1) %then %do;
16134 +              target
16135 +          %end;
16136 +          ;
16137 +      run;
16139 +   %end;
16141 +   filename gpDelta "&EM_FILE_CDELTA_TRAIN";
16142 +   %if (&EM_PROPERTY_TARGETGROUP= Y and &EM_NUM_TARGET>1) %then %do;
16143 +       data _null_;
16144 +          length quotedTarget $32;
16145 +          set &em_user_groupinfo;
16146 +          file gpdelta;
16147 +          if _N_ = &emloopnumber then do;
16148 +             quotedTarget = "'"!!strip(_TARGET_)!!"'";
16149 +             put "if ROLE = 'TARGET' and NAME ne " quotedTarget " then delete;";
16151 +             %do i=1 %to &numgroupvar;
16152 +                 %let gvar = %upcase(%scan(&groupvar, &i, %str( )));
16153 +                 put "if upcase(NAME)= '&gvar' then delete;";
16154 +             %end;
16155 +          end;
16156 +       run;
16157 +   %end;
16158 +   %else %do;
16159 +       data _null_;
16160 +          set &em_user_groupinfo;
16161 +          file gpdelta;
16162 +          if _N_ = &emloopnumber then do;
16163 +             %do i=1 %to &numgroupvar;
16164 +              %let gvar = %upcase(%scan(&groupvar, &i, %str( )));
16165 +                 put "if upcase(NAME)= '&gvar' then delete;";
16166 +             %end;
16167 +          end;
16168 +       run;
16169 +   %end;
16170 +   filename gpdelta;
16172 +   %let nobs=0;
16173 +   %let dsid = %sysfunc(open(&em_user_groupinfo));
16174 +   %if &dsid>0 %then %do;
16175 +       %let nobs = %sysfunc(attrn(&dsid, NOBS));
16176 +       %let dsid = %sysfunc(close(&dsid));
16177 +   %end;
16179 +   %if ^&nobs  %then
16180 +       %let emloopmode =;
16181 +   %else
16182 +       %if &nobs< &emloopnumber %then
16183 +           %let emloopmode = POSTLOOP;
16184 +        %else
16185 +        %let emloopmode = LOOP;
16186 +%mend gp_group;
16188 +%macro gp_Index;
16190 +   %em_getName(key=INDEXINFO,  type=DATA);
16191 +   %em_getName(key=EMLOOPINFO, type=DATA);
16193 +   %if &emloopnumber=1 or ^%sysfunc(exist(&em_user_indexinfo)) %then %do;
16194 +       data &em_user_indexinfo;
16195 +          length _LOOP_ 8 _TARGET_ $32 _WHERE_ $8;
16196 +          _LOOP_     =&EM_PROPERTY_INDEXCOUNT;
16197 +          _TARGET_   ="";
16198 +          _WHERE_    ="";
16199 +          output;
16200 +       run;
16201 +       data &em_data_eminfo;
16202 +          length TARGET KEY $32  DATA $43;
16203 +          TARGET=''; KEY='INDEXINFO'; DATA="&em_nodeid"; output;
16204 +       run;
16206 +       data &em_user_emloopinfo;
16207 +          length MODE $8;
16208 +          label MODE     = "%sysfunc(sasmsg(sashelp.dmine, rpt_mode_vlabel,       NOQUOTE))"
16209 +                _LOOP_   = "%sysfunc(sasmsg(sashelp.dmine, rpt_groupIndex_vlabel, NOQUOTE))"
16210 +          set &em_user_indexinfo(keep=_LOOP_ );
16211 +          MODE='Index';
16212 +       run;
16213 +   %end;
16215 +%mend gp_index;
16217 +%macro gp_Target;
16218 +   %let TargetName = %scan(%em_target, &emloopnumber);
16219 +   %if "&targetName" eq "" %then %do;
16220 +       %goto doendgpt;
16221 +   %end;
16223 +   %if %index(&EM_DEBUG, _ALL_) %then %do;
16224 +       %put GP_TARGET;
16225 +       %put &emLoopnumber &TargetName;
16226 +   %end;
16228 +   filename gpDelta "&EM_FILE_CDELTA_TRAIN";
16229 +   data _null_;
16230 +      file gpdelta;
16231 +      put "if ROLE = 'TARGET' and NAME ne '&targetName' then delete;";
16232 +   run;
16233 +   filename gpdelta;
16235 +   %if &emloopnumber eq 1 %then %do;
16236 +       %em_getName(key=TARGETINFO,  type=DATA);
16237 +       %em_getName(key=EMLOOPINFO,  type=DATA);
16239 +       data &em_user_targetinfo;
16240 +          length _LOOP_ 8 _TARGET_ $32 _WHERE_ $2000;
16241 +          retain _LOOP_;
16242 +          _WHERE_ = '';
16243 +          %do i=1 %to &em_num_target;
16244 +              %let varname = %scan(%em_target, &i, ' ');
16245 +              _TARGET_ = "&varname";
16246 +              _LOOP_+1;
16247 +              output;
16248 +           %end;
16249 +       run;
16250 +       data &em_user_emloopinfo;
16251 +         set &em_user_targetinfo(keep=_LOOP_ _TARGET_);
16252 +         label _LOOP_      = "%sysfunc(sasmsg(sashelp.dmine, rpt_groupIndex_vlabel, NOQUOTE))"
16253 +               _TARGET_    = "%sysfunc(sasmsg(sashelp.dmine, rpt_target_vlabel,     NOQUOTE))";
16254 +      run;
16256 +       data &em_data_eminfo;
16257 +          length TARGET KEY $32  DATA $43;
16258 +          TARGET=''; KEY='TARGETINFO'; DATA="&em_nodeid"; output;
16259 +       run;
16260 +   %end;
16262 +   %doendgpt:
16263 +%mend gp_target;
16265 +%macro train;
16266 +   %if %index(&EM_DEBUG, _ALL_) %then %do;
16267 +       %put LOOP MODE:   &emloopmode ;
16268 +       %put LOOP NUMBER: &emloopnumber;
16269 +   %end;
16271 +   %if &emloopmode eq 'POSTLOOP' %then %goto doendmain;
16273 +   %if ("&EM_PROPERTY_MODE" = "BOOSTING") or ("&EM_PROPERTY_MODE" = "BAGGING") %then %do;
16275 +       %let hpdmFlag = 0;
16276 +       %if %symexist(em_import_DATA_eminfo) %then %do;
16277 +            data _null_;
16278 +               set &em_import_DATA_eminfo;
16279 +               where KEY = "HPDMSAMPLE";
16280 +               call symput('hpdmFlag', '1');
16281 +            run;
16282 +       %end;
16283 +       %if &hpdmFlag %then %do;
16284 +           %let emexceptionstring = exception.server.EMTOOL.HPNOBOOSTBAG;
16285 +           %goto doendmain;
16286 +       %end;
16287 +   %end;
16289 +   %em_getname(key=EMLOOPINFO,  type=DATA);
16290 +   %em_getname(key=GROUPINFO,  type=DATA);
16291 +   %em_getname(key=BOOSTINFO,  type=DATA);
16292 +   %em_getname(key=BAGINFO,    type=DATA);
16293 +   %em_getname(key=TARGETINFO, type=DATA);
16294 +   %em_getname(key=INDEXINFO,  type=DATA);
16295 +   %em_getname(key=EMINFO,  type=DATA);
16297 +   %if "&emloopnumber" = "1" %then %do;
16298 +       %em_getname(key=PRECODE, type=FILE, extension=sas);
16299 +       filename _pregrp "&em_user_precode";
16300 +       data _null_;
16301 +         rc = fdelete('_pregrp');
16302 +       run;
16303 +       filename _pregrp;
16305 +       %let members =;
16306 +       %if %sysfunc(exist(&em_user_emloopinfo)) %then %let members = &members %scan(&EM_USER_EMLOOPINFO,   2, .);
16307 +       %if %sysfunc(exist(&em_user_groupinfo))  %then %let members = &members %scan(&EM_USER_GROUPINFO,  2, .);
16308 +       %if %sysfunc(exist(&em_user_targetinfo)) %then %let members = &members %scan(&EM_USER_TARGETINFO, 2, .);
16309 +       %if %sysfunc(exist(&em_user_boostinfo))  %then %let members = &members %scan(&EM_USER_BOOSTINFO,  2, .);
16310 +       %if %sysfunc(exist(&em_user_baginfo))    %then %let members = &members %scan(&EM_USER_BAGINFO,    2, .);
16311 +       %if %sysfunc(exist(&em_user_indexinfo))  %then %let members = &members %scan(&EM_USER_INDEXINFO,  2, .);
16312 +       %if %sysfunc(exist(&em_user_eminfo))     %then %let members = &members %scan(&EM_USER_EMINFO,  2, .);
16314 +       %if "&members" ne "" %then %do;
16315 +           proc datasets lib=&em_lib nolist;
16316 +              delete &members;
16317 +           run;
16318 +      %end;
16319 +   %end;
16321 +   %let emboostvar    =;
16322 +   %let embagvar      =;
16323 +   %let emgroupvar    =;
16324 +   %let emnumgroupvar =;
16325 +   %getVariables;
16327 +   %if &EM_PROPERTY_MODE = TARGET %then %do;
16328 +       %if &EM_NUM_TARGET>=1 %then %do;
16329 +           %gp_target;
16330 +           %if &emLoopNumber <= &EM_NUM_TARGET %then
16331 +               %let emloopmode= LOOP;
16332 +           %else
16333 +              %let emloopmode = POSTLOOP;
16334 +       %end;
16335 +       %else %do;
16336 +           %let emloopmode = ;
16337 +           %let emexceptionstring = exception.server.METADATA.USE1TARGET;
16338 +           %goto doendmain;
16339 +       %end;
16340 +   %end;
16341 +   %else
16342 +   %if &EM_PROPERTY_MODE = NOGROUP %then %do;
16343 +       %let emloopmode=;
16344 +       %if %sysfunc(exist(&em_data_eminfo)) %then %do;
16345 +           proc delete data=&em_data_eminfo;
16346 +           run;
16347 +       %end;
16348 +   %end;
16349 +   %else
16350 +   %if &EM_PROPERTY_MODE = INDEX %then %do;
16351 +       %gp_index;
16352 +       %if  &emLoopNumber <= &EM_PROPERTY_INDEXCOUNT %then
16353 +           %let emloopmode= LOOP;
16354 +       %else
16355 +           %let emloopmode= POSTLOOP;
16356 +   %end;
16357 +   %else
16358 +   %if "&EM_PROPERTY_MODE" = "STRATIFY" or "&EM_PROPERTY_MODE" = "CROSSVALIDATION"  %then %do;
16359 +       %if "&emloopnumber"="1" and "&emgroupvar" eq "" %then %do;
16360 +           %let emloopmode = ;
16361 +           %let emexceptionstring = exception.server.METADATA.USE1GROUPVAR;
16362 +           %goto doendmain;
16363 +       %end;
16365 +       %gp_group(numgroupvar=&emnumgroupvar, groupvar=&emgroupvar);
16366 +   %end;
16367 +   %else
16368 +   %if &EM_PROPERTY_MODE = BOOSTING %then %do;
16369 +       %if "&emboostvar" eq "" %then %do;
16370 +           %let emloopmode = ;
16371 +           %let emexceptionstring = exception.server.METADATA.USE1BOOSTVAR;
16372 +           %goto doendmain;
16373 +       %end;
16375 +       %if  &emLoopNumber <= &EM_PROPERTY_INDEXCOUNT %then %do;
16376 +           %let emloopmode= LOOP;
16377 +           %gp_boost(targetname=&emboostvar);
16379 +       %end;
16380 +       %else
16381 +           %let emloopmode= POSTLOOP;
16382 +   %end;
16383 +   %else
16384 +   %if &EM_PROPERTY_MODE = BAGGING %then %do;
16385 +       %if "&embagvar" eq "" %then %do;
16386 +           %let emloopmode = ;
16387 +           %let emexceptionstring = exception.server.METADATA.USE1BAGVAR;
16388 +           %goto doendmain;
16389 +       %end;
16391 +        %if  &emLoopNumber <= &EM_PROPERTY_INDEXCOUNT %then %do;
16392 +           %let emloopmode= LOOP;
16393 +           %gp_bag(targetname=&embagvar);
16394 +       %end;
16395 +       %else
16396 +           %let emloopmode= POSTLOOP;
16397 +   %end;
16400 +   %if &emloopmode eq "" %then %do;
16401 +       %let lib    = %scan(&em_data_eminfo, 1, .);
16402 +       %let member = %scan(&em_data_eminfo, 2, .);
16403 +       proc datasets lib=&lib nolist;
16404 +          delete &member;
16405 +       run;
16406 +   %end;
16408 +   %doendmain:
16410 +   %if %index(&EM_DEBUG, _ALL_) %then %do;
16411 +       %put NEW LOOP MODE: &emloopmode;
16412 +   %end;
16414 +   %if "&emloopmode" eq "POSTLOOP" %then %do;
16415 +       filename temp catalog 'sashelp.emutil.gp_postloop.source';
16416 +       %include temp;
16417 +       filename temp;
16419 +       %postloop;
16420 +   %end;
16422 +%mend train;
NOTE: %INCLUDE (level 1) ending.
NOTE: Fileref TEMP has been deassigned.
 
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
 
 
NOTE: Fileref _PREGRP has been deassigned.
 
NOTE: Deleting EMWS4.GRP_GROUPINFO (memtype=DATA).
NOTE: Deleting EMWS4.GRP_EMINFO (memtype=DATA).
 
NOTE: PROCEDURE DATASETS used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
 
 
 
NOTE: There were 15 observations read from the data set EMWS4.GRP_VARIABLESET.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
 
 
 
ERROR: The requested table is too large to process.
NOTE: There were 78792 observations read from the data set EMWS4.IDS_DATA.
NOTE: View EMWS4.VARSEL2_TRAIN.VIEW used (Total process time):
      real time           2.07 seconds
      cpu time            2.07 seconds
 
NOTE: There were 78792 observations read from the data set EMWS4.TRANS_TRAIN.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: There were 78792 observations read from the data set EMWS4.VARSEL2_TRAIN.
NOTE: PROCEDURE FREQ used (Total process time):
      real time           2.10 seconds
      cpu time            2.10 seconds
 
WARNING: Output 'crosstabfreqs' was not created.  Make sure that the output object name, label, or path is spelled correctly.  Also, verify that the appropriate procedure options are used to produce the requested output object.  For example, verify that
         the NOPRINT option is not used.
 
 
ERROR: File WORK.TEMP.DATA does not exist.
 
NOTE: The SAS System stopped processing this step because of errors.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
 
 
ERROR: File WORK.TEMP.DATA does not exist.
WARNING: No data sets qualify for WHERE processing.
 
NOTE: The SAS System stopped processing this step because of errors.
WARNING: The data set WORK.LOOPINFO may be incomplete.  When this step was stopped there were 0 observations and 0 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
 
WARNING: Argument 2 to function VARFMT referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARTYPE referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARLEN referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
NOTE: Mathematical operations could not be performed during %SYSFUNC function execution. The result of the operations have been set to a missing value.
WARNING: Argument 2 to function VARFMT referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARTYPE referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARLEN referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
NOTE: Mathematical operations could not be performed during %SYSFUNC function execution. The result of the operations have been set to a missing value.
WARNING: Argument 2 to function VARFMT referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARTYPE referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARLEN referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
NOTE: Mathematical operations could not be performed during %SYSFUNC function execution. The result of the operations have been set to a missing value.
WARNING: Argument 2 to function VARFMT referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARTYPE referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARLEN referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
NOTE: Mathematical operations could not be performed during %SYSFUNC function execution. The result of the operations have been set to a missing value.
WARNING: Argument 2 to function VARFMT referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARTYPE referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARLEN referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
NOTE: Mathematical operations could not be performed during %SYSFUNC function execution. The result of the operations have been set to a missing value.
WARNING: Argument 2 to function VARFMT referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARTYPE referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARLEN referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
NOTE: Mathematical operations could not be performed during %SYSFUNC function execution. The result of the operations have been set to a missing value.
WARNING: Argument 2 to function VARFMT referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARTYPE referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARLEN referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
NOTE: Mathematical operations could not be performed during %SYSFUNC function execution. The result of the operations have been set to a missing value.
WARNING: Argument 2 to function VARFMT referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARTYPE referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARLEN referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
NOTE: Mathematical operations could not be performed during %SYSFUNC function execution. The result of the operations have been set to a missing value.
WARNING: Argument 2 to function VARFMT referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARTYPE referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARLEN referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
NOTE: Mathematical operations could not be performed during %SYSFUNC function execution. The result of the operations have been set to a missing value.
WARNING: Argument 2 to function VARFMT referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARTYPE referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARLEN referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
NOTE: Mathematical operations could not be performed during %SYSFUNC function execution. The result of the operations have been set to a missing value.
WARNING: Argument 2 to function VARFMT referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARTYPE referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
WARNING: Argument 2 to function VARLEN referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
NOTE: Mathematical operations could not be performed during %SYSFUNC function execution. The result of the operations have been set to a missing value.
 
 
 
 
NOTE: 0 records were written to the file _PREGRP.
NOTE: There were 0 observations read from the data set WORK.LOOPINFO.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
 
 
 
NOTE: There were 0 observations read from the data set WORK.LOOPINFO.
NOTE: The data set WORK.LOOPINFO has 0 observations and 0 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
 
 
NOTE: Fileref _PREGRP has been deassigned.
NOTE: Line generated by the invoked macro "GP_GROUP".
358                                                                                          FREQUENCY = &_totalobs_ - FREQUENCY;
                                                                                                         -
                                                                                                         22
WARNING: Apparent symbolic reference _TOTALOBS_ not resolved.
 
ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, a numeric constant, a datetime constant, a missing value, INPUT, PUT.
 
NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column).
      1:1   1:1   1:1   1:1   1:1   1:1   1:1   1:1   1:1   1:1   1:1   1:1   1:1   1:1   1:1   1:1   1:1   1:1   1:1   1:1   1:1   1:1
NOTE: The SAS System stopped processing this step because of errors.
WARNING: The data set EMWS4.GRP_GROUPINFO may be incomplete.  When this step was stopped there were 0 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
 
 
 
NOTE: The data set EMWS4.GRP_EMINFO has 1 observations and 3 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
 
 
 
NOTE: There were 0 observations read from the data set EMWS4.GRP_GROUPINFO.
NOTE: The data set EMWS4.GRP_EMLOOPINFO has 0 observations and 3 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.03 seconds
 
 
 
NOTE: The file WORK.TEMP (memtype=DATA) was not found, but appears on a DELETE statement.
NOTE: Deleting WORK.LOOPINFO (memtype=DATA).
 
NOTE: PROCEDURE DATASETS used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
 
 
 
 
NOTE: 0 records were written to the file GPDELTA.
NOTE: There were 0 observations read from the data set EMWS4.GRP_GROUPINFO.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
 
 
NOTE: Fileref GPDELTA has been deassigned.
16424  *------------------------------------------------------------*;
16425  * End TRAIN: Grp;
16426  *------------------------------------------------------------*;
16427
 
*------------------------------------------------------------*
*
* ERROR: Run time error was encountered.  The system error returned was 3000.
* Please report unresolved problems to Technical Support.
*
*------------------------------------------------------------*

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

How to choose a machine learning algorithm

Use this tutorial as a handy guide to weigh the pros and cons of these commonly used machine learning algorithms.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 0 replies
  • 1041 views
  • 0 likes
  • 1 in conversation