SAS Data Science

Building models with SAS Enterprise Miner, SAS Factory Miner, SAS Viya (Machine Learning), SAS Visual Text Analytics, with point-and-click interfaces or programming
BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
brian_k
Fluorite | Level 6

I am working in Enterprise Miner 14.2 and I am working entirely within the various nodes there.  I want to say that to be clear that I am not writing any SAS code for this particular problem - no SAS Code node is used.

 

I have a dataset with ~460,000 rows and ~570 columns.  I connect Miner to the data set and I can successfully do the following:

  • Import the data set
  • Edit variables where necessary (such as setting the target and noting some binary variables)
  • Partition the data set
  • Build a regression model directly connected to the partitioned data (a poor one for sure, but it executed normally)

 

Now, when I go to my partitioned data and connect a Transform Variables node to the Partition Data node, I encounter a problem.  If I execute the node without actually doing any transformations, the node 'completes' the process normally.

 

However, if I attempt to transform any variable, I get an error message:

brian_k_0-1740613480386.jpeg

 

Going through the results, I come to the error and here is the one from my latest run:

  • NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column).
    18240:16
    NOTE: The SAS System stopped processing this step because of errors.

 

I did a search on this error, but only found it referenced in places where someone's SAS code was used - not any instances directly related to a specific SAS node.  The other issues I saw had the line number referring to the line in the SAS code being executed, but what does it mean here?  Is this an actual line number of the code in the node?  Is this the row number in my data set where the issue is occurring?  Also, what is column 16?  I assume that is the column in the data, but I have been through my data repeatedly and everything looks good to me.  All of my Interval variables are actually numbers and I also have ~10 categorical variables which all contain words, and there seems to be no  issue having them assigned the proper format in Miner.

 

Thank you,

Brian

 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
ballardw
Super User

Note that the first error I find is here

 

18200      proc FCMP NOEXECUTE IMPUTEDDEPS OUTDEPS=WORK.TRANS_SCOREINPUTS;
ERROR: Procedure FCMP not found.

and apparently the next bit about data set doesn't exist is because the output from this step can't exist.

 

I think you may need to get SAS tech support involved as to why your process can't find Proc FCMP.

View solution in original post

6 REPLIES 6
ballardw
Super User

Since that message is referencing Line and Column I have to ask does this generate a LOG of activity? That is where I would expect to see the details. Which would likely be the stuff generated by the node.

 

One might ask why you added a transform node with no transformations.

 

If there is a LOG generated it might have something similar to this (an example generating the same warning)

5    data junk;
6       set sashelp.class;
7       firstdigit = substr(age,1,1);
8    run;

NOTE: Numeric values have been converted to character
      values at the places given by: (Line):(Column).
      7:24

This is generating the message because a character function, SUBSTR, has been used on a numeric variable. The Line, 7 in this case, appears in the left margin of the log by default. The Column, 24, would the position on the line where the letter A in "age" appears. Which tells us that the character function was using that numeric variable as input.

It may be that there is some set up actions done when a transform node is started but if you don't go on to specify the actual transforms that code generated by the node leaves some variables in such setup code, such as a list of variables. Just guessing because I don't have access to Miner in any form.

brian_k
Fluorite | Level 6

There is a log, and I pulled that error message from the log.  There is code as the node walks through the variables and, following the code up just a above the error, the last code listed is the code to transform a variable that I had selected.  Walking through the notes after the last bit of code, it looks like PROC FCMP was running when that variable was encountered and the node stopped and the error generated.

 

My programming in SAS does not deal with called routines or subroutines outside of the common PROCs, so that one is unknown to me.  Maybe this is for a tech support ticket.

 

I ran an empty transformation node after the error-causing one, just to see if the node would finish executing without an error.  Part of the process of looking for the problem.

 

Thank you for the response.

 

 

Tom
Super User Tom
Super User

You see those kinds of uninterpretable LINE:COLUMN values from errors detected in macro generated code. 

1    data test;
2      set sashelp.class(obs=1);
3      letter = substr(age,12,1);
4    run;

NOTE: Numeric values have been converted to character
      values at the places given by: (Line):(Column).
      3:19
NOTE: There were 1 observations read from the data set SASHELP.CLASS.
NOTE: The data set WORK.TEST has 1 observations and 6 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.00 seconds


5    %macro test;
6    data test;
7      set sashelp.class(obs=1);
8      letter = substr(age,12,1);
9    run;
10   %mend test;
11   options mprint;
12   %test;
MPRINT(TEST):   data test;
MPRINT(TEST):   set sashelp.class(obs=1);
MPRINT(TEST):   letter = substr(age,12,1);
MPRINT(TEST):   run;

NOTE: Numeric values have been converted to character
      values at the places given by: (Line):(Column).
      1:59
NOTE: There were 1 observations read from the data set SASHELP.CLASS.
NOTE: The data set WORK.TEST has 1 observations and 6 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds

The numbers probably mean something in terms of the compiled macro, but there is no easy way to map the number to an actual line of code.

 

If you are running macro calls then that is what is happening.

If not but you are calling FCMP generated functions then perhaps something similar is happening for those.

Kurt_Bremser
Super User

@brian_k wrote:

........

 

  • NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column).
    18240:16
    NOTE: The SAS System stopped processing this step because of errors.

These are NOTEs, not ERRORs. But the second NOTE references errors, so you need to find them in the log. Please post the complete log of this failing step. Copy/paste the whole text as is into a window opened with this button:

Bildschirmfoto 2020-04-07 um 08.32.59.jpg

brian_k
Fluorite | Level 6

Thank you for pointing out that I had included notes, not errors.  I should have seen that, but did not.

 

Output is included below.

 

 

 

*------------------------------------------------------------*
User:                bknig
Date:                February 26, 2025
Time:                18:38:54
Site:                70122575
Platform:            X64_10PRO
Maintenance Release: 9.04.01M4P110916
EM Version:          14.2
* 
MPRINT(EM_DIAGRAM):    data _null_;
MPRINT(EM_DIAGRAM):   call symput('NLDATE', strip(put(date(), NLDATE.)));
MPRINT(EM_DIAGRAM):   call symput('NLTIME', strip(put(datetime(), NLTIME.)));
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):   data _null_;
MPRINT(EM_DIAGRAM):   nldate= sasmsg("sashelp.dmine", "log_date_note", 'N', "February 26, 2025" );
MPRINT(EM_DIAGRAM):   nltime= sasmsg("sashelp.dmine", "log_time_note", 'N', "18:37:10" );
MPRINT(EM_DIAGRAM):   put "*------------------------------------------------------------*";
MPRINT(EM_DIAGRAM):   put "* Training Log";
MPRINT(EM_DIAGRAM):   put nldate;
MPRINT(EM_DIAGRAM):   put nltime;
MPRINT(EM_DIAGRAM):   put "*------------------------------------------------------------*";
MPRINT(EM_DIAGRAM):   run;
*------------------------------------------------------------*
* Training Log
Date:                February 26, 2025
Time:                18:37:10
*------------------------------------------------------------*
MPRINT(EM_DIAGRAM):    filename O09CQZOK "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMTRAIN.out" encoding="UTF-8" NOBOM;
MPRINT(EM_DIAGRAM):   proc printto print=O09CQZOK new;
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):    filename _LOG "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMLOG.log" encoding="UTF-8" NOBOM;
MPRINT(EM_DIAGRAM):    data _null_;
MPRINT(EM_DIAGRAM):   call symput('NLDATE', strip(put(date(), NLDATE.)));
MPRINT(EM_DIAGRAM):   call symput('NLTIME', strip(put(datetime(), NLTIME.)));
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):   data _null_;
MPRINT(EM_DIAGRAM):   nldate= sasmsg("sashelp.dmine", "log_date_note", 'N', "February 26, 2025" );
MPRINT(EM_DIAGRAM):   nltime= sasmsg("sashelp.dmine", "log_time_note", 'N', "18:37:10" );
MPRINT(EM_DIAGRAM):   file _LOG;
MPRINT(EM_DIAGRAM):   put "*------------------------------------------------------------*";
MPRINT(EM_DIAGRAM):   put "User:                bknig";
MPRINT(EM_DIAGRAM):   put nldate;
MPRINT(EM_DIAGRAM):   put nltime;
MPRINT(EM_DIAGRAM):   put "Site:                70122575";
MPRINT(EM_DIAGRAM):   put "Platform:            X64_10PRO";
MPRINT(EM_DIAGRAM):   put "Maintenance Release: 9.04.01M4P110916";
MPRINT(EM_DIAGRAM):   put "EM Version:          14.2";
MPRINT(EM_DIAGRAM):   put "* ";
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):    filename _LOGIN "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMTRAIN.log" encoding="UTF-8" NOBOM;
MPRINT(EM_COPYFILE):   data _null_;
MPRINT(EM_COPYFILE):   length line $20000;
MPRINT(EM_COPYFILE):   file _LOG MOD lrecl=20000;
MPRINT(EM_COPYFILE):   fid=fopen("_LOGIN",'i',20000,'v');
MPRINT(EM_COPYFILE):   if fid > 0 then do;
MPRINT(EM_COPYFILE):   do while(^fread(fid));
MPRINT(EM_COPYFILE):   rlen = frlen(fid);
MPRINT(EM_COPYFILE):   rc= fget(fid,line,20000);
MPRINT(EM_COPYFILE):   start = length(line)-length(left(line))+1;
MPRINT(EM_COPYFILE):   line=strip(line);
MPRINT(EM_COPYFILE):   put @start line;
MPRINT(EM_COPYFILE):   end;
MPRINT(EM_COPYFILE):   if fid > 0 then rc=fclose(fid);
MPRINT(EM_COPYFILE):   end;
MPRINT(EM_COPYFILE):   run;
MPRINT(EM_DIAGRAM):  ;
MPRINT(EM_DIAGRAM):   filename _LOGIN;
MPRINT(EM_DIAGRAM):    data _null_;
MPRINT(EM_DIAGRAM):   file _LOG mod;
MPRINT(EM_DIAGRAM):   put _page_;
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):   filename _LOGIN "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMSCORE.log" encoding="UTF-8" NOBOM;
MPRINT(EM_DIAGRAM):  ;
MPRINT(EM_DIAGRAM):   data _null_;
MPRINT(EM_DIAGRAM):   file _LOG mod;
MPRINT(EM_DIAGRAM):   put _page_;
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):    filename _LOGIN "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMREPORT.log" encoding="UTF-8" NOBOM;
MPRINT(EM_DIAGRAM):  ;
MPRINT(EM_DIAGRAM):   filename _LOGIN;
MPRINT(EM_DIAGRAM):    filename _LOG;
MPRINT(EM_DIAGRAM):    filename _OUT "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMOUTPUT.out" encoding="UTF-8" NOBOM;
MPRINT(EM_DIAGRAM):    data _null_;
MPRINT(EM_DIAGRAM):   call symput('NLDATE', strip(put(date(), NLDATE.)));
MPRINT(EM_DIAGRAM):   call symput('NLTIME', strip(put(datetime(), NLTIME.)));
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):   data _null_;
MPRINT(EM_DIAGRAM):   nldate= sasmsg("sashelp.dmine", "log_date_note", 'N', "February 26, 2025" );
MPRINT(EM_DIAGRAM):   nltime= sasmsg("sashelp.dmine", "log_time_note", 'N', "18:37:10" );
MPRINT(EM_DIAGRAM):   file _OUT;
MPRINT(EM_DIAGRAM):   put "*------------------------------------------------------------*";
MPRINT(EM_DIAGRAM):   put "User:                bknig";
MPRINT(EM_DIAGRAM):   put nldate;
MPRINT(EM_DIAGRAM):   put nltime;
MPRINT(EM_DIAGRAM):   put "*------------------------------------------------------------*";
MPRINT(EM_DIAGRAM):   put "* Training Output";
MPRINT(EM_DIAGRAM):   put "*------------------------------------------------------------*";
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):    filename _OUTIN "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMTRAIN.out" encoding="UTF-8" NOBOM;
MPRINT(EM_DIAGRAM):   ;
MPRINT(EM_COPYFILE):   data _null_;
MPRINT(EM_COPYFILE):   length line $20000;
MPRINT(EM_COPYFILE):   file _OUT MOD lrecl=20000;
MPRINT(EM_COPYFILE):   fid=fopen("_OUTIN",'i',20000,'v');
MPRINT(EM_COPYFILE):   if fid > 0 then do;
MPRINT(EM_COPYFILE):   do while(^fread(fid));
MPRINT(EM_COPYFILE):   rlen = frlen(fid);
MPRINT(EM_COPYFILE):   rc= fget(fid,line,20000);
MPRINT(EM_COPYFILE):   start = length(line)-length(left(line))+1;
MPRINT(EM_COPYFILE):   line=strip(line);
MPRINT(EM_COPYFILE):   put @start line;
MPRINT(EM_COPYFILE):   end;
MPRINT(EM_COPYFILE):   if fid > 0 then rc=fclose(fid);
MPRINT(EM_COPYFILE):   end;
MPRINT(EM_COPYFILE):   run;
MPRINT(EM_DIAGRAM):  ;
MPRINT(EM_DIAGRAM):   filename _OUTIN;
MPRINT(EM_DIAGRAM):    data _null_;
MPRINT(EM_DIAGRAM):   file _OUT mod;
MPRINT(EM_DIAGRAM):   put _page_;
MPRINT(EM_DIAGRAM):   put // "*------------------------------------------------------------*";
MPRINT(EM_DIAGRAM):   put "* Score Output";
MPRINT(EM_DIAGRAM):   put "*------------------------------------------------------------*";
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):    filename _OUTIN "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMSCORE.out" encoding="UTF-8" NOBOM;
MPRINT(EM_DIAGRAM):  ;
MPRINT(EM_DIAGRAM):   filename _OUTIN;
MPRINT(EM_DIAGRAM):    data _null_;
MPRINT(EM_DIAGRAM):   file _OUT mod;
MPRINT(EM_DIAGRAM):   put _page_;
MPRINT(EM_DIAGRAM):   put // "*------------------------------------------------------------*";
MPRINT(EM_DIAGRAM):   put "* Report Output";
MPRINT(EM_DIAGRAM):   put "*------------------------------------------------------------*";
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):    filename _OUTIN "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMREPORT.out" encoding="UTF-8" NOBOM;
MPRINT(EM_DIAGRAM):  ;
MPRINT(EM_DIAGRAM):   filename _OUTIN;
MPRINT(EM_DIAGRAM):    filename _OUT;
MPRINT(EM_DIAGRAM):    filename _emtool_ 'X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMRUNSTATUS.xml' encoding="UTF-8" NOBOM;
30234      proc freq data=EMWS2.Trans_VariableSet noprint;
MPRINT(EM_DIAGRAM):    proc freq data=EMWS2.Trans_VariableSet noprint;
30235      table ROLE*LEVEL/out=WORK.TransMETA;
MPRINT(EM_DIAGRAM):   table ROLE*LEVEL/out=WORK.TransMETA;
30236      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 507 observations read from the data set EMWS2.TRANS_VARIABLESET.
NOTE: The data set WORK.TRANSMETA has 4 observations and 4 variables.
NOTE: PROCEDURE FREQ used (Total process time):
      real time           0.16 seconds
      cpu time            0.01 seconds
 
 
30237      proc print data=WORK.TransMETA label noobs;
MPRINT(EM_DIAGRAM):   proc print data=WORK.TransMETA label noobs;
30238      var ROLE LEVEL COUNT;
MPRINT(EM_DIAGRAM):   var ROLE LEVEL COUNT;
30239      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))";
MPRINT(EM_DIAGRAM):   label ROLE = "Role" LEVEL = "Measurement Level" COUNT = "Frequency Count";
30240      title9 ' ';
MPRINT(EM_DIAGRAM):   title9 ' ';
30241      title10 "%sysfunc(sasmsg(sashelp.dmine, rpt_varSummary_title  , NOQUOTE))";
MPRINT(EM_DIAGRAM):   title10 "Variable Summary";
MPRINT(EM_DIAGRAM):   run;
30242      run;
 
NOTE: There were 4 observations read from the data set WORK.TRANSMETA.
NOTE: The PROCEDURE PRINT printed page 7.
NOTE: PROCEDURE PRINT used (Total process time):
      real time           0.03 seconds
      cpu time            0.01 seconds
 
 
30243      title10;
MPRINT(EM_DIAGRAM):   title10;
30244      data WORK.M2V0G0HI;
MPRINT(EM_DIAGRAM):    data WORK.M2V0G0HI;
30245      set WORK.M2V0G0HI;
MPRINT(EM_DIAGRAM):   set WORK.M2V0G0HI;
30246      if (METHOD='NONE' and ROLE ne 'FREQ') or (role = 'REJECTED' and METHOD = 'DEFAULT') then delete;
MPRINT(EM_DIAGRAM):   if (METHOD='NONE' and ROLE ne 'FREQ') or (role = 'REJECTED' and METHOD = 'DEFAULT') then delete;
30247      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 507 observations read from the data set WORK.M2V0G0HI.
NOTE: The data set WORK.M2V0G0HI has 506 observations and 22 variables.
NOTE: DATA statement used (Total process time):
      real time           0.04 seconds
      cpu time            0.03 seconds
 
 
30312      *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):     *------------------------------------------------------------*;
30313      * Trans: Computing Summary Statistics;
MPRINT(EM_DIAGRAM):   * Trans: Computing Summary Statistics;
30314      *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
30315      data WORK.M0A0BBGX;
MPRINT(EM_DIAGRAM):   data WORK.M0A0BBGX;
30316      set WORK.M0A0BBGX;
MPRINT(EM_DIAGRAM):   set WORK.M0A0BBGX;
30317      if (role = 'REJECTED') then role = 'INPUT';
MPRINT(EM_DIAGRAM):   if (role = 'REJECTED') then role = 'INPUT';
30318      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 506 observations read from the data set WORK.M0A0BBGX.
NOTE: The data set WORK.M0A0BBGX has 506 observations and 22 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.00 seconds
 
 
30319      *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):    *------------------------------------------------------------*;
30320      * Create DMDB macros;
MPRINT(EM_DIAGRAM):   * Create DMDB macros;
30321      %let _sns = %sysfunc(getoption(SOURCE));
30322      options nosource;
MPRINT(EM_DIAGRAM):   options nosource;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------* ;
MPRINT(EM_DIAGRAM):   * EM: DMDBClass Macro ;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------* ;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------* ;
MPRINT(EM_DIAGRAM):   * EM: DMDBVar Macro ;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------* ;
MPRINT(EM_DIAGRAM):   options SOURCE;
MPRINT(EM_DIAGRAM):   * End DMDB macros generation;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * EM: Create DMDB;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
30510      * End DMDB macros generation;
30511      *------------------------------------------------------------*;
30512      *------------------------------------------------------------*;
30513      * EM: Create DMDB;
30514      *------------------------------------------------------------*;
30515      proc dmdb batch data=EMWS2.Part_TRAIN
30516      dmdbcat=WORK.EM_DMDB
30517      classout=WORK.Transclassout
30518      maxlevel = 513
30519      ;
MPRINT(EM_DIAGRAM):   proc dmdb batch data=EMWS2.Part_TRAIN dmdbcat=WORK.EM_DMDB classout=WORK.Transclassout maxlevel = 513 ;
MPRINT(EM_DIAGRAM):   class
30520      class %DMDBClass;
MPRINT(DMDBCLASS):   account_type(ASC) cbn_club(ASC) cbn_club_previous(ASC) continuing_donor(DESC) direction_last_club_change(ASC) economic_cohort_cluster(ASC) economic_cohort_group(ASC) education_hh_advantage(ASC) education_hh_census(ASC)
equifax_risk_score_category(ASC) ethnicity_group(ASC) ethnicity_of_hh(ASC) inception_method_coarse(ASC) inception_solicitation_method(ASC) inception_solicitation_type(ASC) language_of_hh(ASC) marital_status(ASC)
MPRINT(EM_DIAGRAM):  ;
MPRINT(EM_DIAGRAM):   var
30521      var %DMDBVar;
MPRINT(DMDBVAR):   ability_to_pay_index account_longevity_months address_is_po_box age call_cnt_in_money_01mo call_cnt_in_money_03mo call_cnt_in_money_06mo call_cnt_in_money_12mo call_cnt_in_money_24mo call_cnt_in_money_36mo call_cnt_in_other_01mo
call_cnt_in_other_03mo call_cnt_in_other_06mo call_cnt_in_other_12mo call_cnt_in_other_24mo call_cnt_in_other_36mo call_cnt_in_prayer_01mo call_cnt_in_prayer_03mo call_cnt_in_prayer_06mo call_cnt_in_prayer_12mo call_cnt_in_prayer_24mo
call_cnt_in_prayer_36mo call_cnt_in_product_01mo call_cnt_in_product_03mo call_cnt_in_product_06mo call_cnt_in_product_12mo call_cnt_in_product_24mo call_cnt_in_product_36mo call_cnt_in_total_12mo call_cnt_in_total_24mo call_cnt_in_total_36mo
call_cnt_out_money_01mo call_cnt_out_money_03mo call_cnt_out_money_06mo call_cnt_out_money_12mo call_cnt_out_money_24mo call_cnt_out_money_36mo call_cnt_out_other_01mo call_cnt_out_other_03mo call_cnt_out_other_06mo call_cnt_out_other_12mo
call_cnt_out_other_24mo call_cnt_out_other_36mo call_cnt_out_prayer_01mo call_cnt_out_prayer_03mo call_cnt_out_prayer_06mo call_cnt_out_prayer_12mo call_cnt_out_prayer_24mo call_cnt_out_prayer_36mo call_cnt_out_product_01mo call_cnt_out_product_03mo
call_cnt_out_product_06mo call_cnt_out_product_12mo call_cnt_out_product_24mo call_cnt_out_product_36mo call_cnt_out_total_12mo call_cnt_out_total_24mo call_cnt_out_total_36mo call_len_in_money_01mo call_len_in_money_03mo call_len_in_money_06mo
call_len_in_money_12mo call_len_in_money_24mo call_len_in_money_36mo call_len_in_other_01mo call_len_in_other_03mo call_len_in_other_06mo call_len_in_other_12mo call_len_in_other_24mo call_len_in_other_36mo call_len_in_prayer_01mo call_len_in_prayer_03mo
call_len_in_prayer_06mo call_len_in_prayer_12mo call_len_in_prayer_24mo call_len_in_prayer_36mo call_len_in_product_01mo call_len_in_product_03mo call_len_in_product_06mo call_len_in_product_12mo call_len_in_product_24mo call_len_in_product_36mo
call_len_out_money_01mo call_len_out_money_03mo call_len_out_money_06mo call_len_out_money_12mo call_len_out_money_24mo call_len_out_money_36mo call_len_out_other_01mo call_len_out_other_03mo call_len_out_other_06mo call_len_out_other_12mo
call_len_out_other_24mo call_len_out_other_36mo call_len_out_prayer_01mo call_len_out_prayer_03mo call_len_out_prayer_06mo call_len_out_prayer_12mo call_len_out_prayer_24mo call_len_out_prayer_36mo call_len_out_product_01mo call_len_out_product_03mo
call_len_out_product_06mo call_len_out_product_12mo call_len_out_product_24mo call_len_out_product_36mo can_receive_email can_receive_ereceipt can_receive_gift_card can_receive_mail can_receive_membership_kit can_receive_phone_call can_receive_premium
can_receive_receipt cbn_club_is_1000 cbn_club_is_2500 cbn_club_is_700 cbn_club_is_chairman_plus cbn_club_is_founder cbn_club_is_gold cbn_club_is_nmd cbn_club_is_prospect cbn_club_max_12mo cbn_club_max_24mo cbn_club_max_36mo cbn_club_min_12mo
cbn_club_min_24mo cbn_club_min_36mo cbn_club_rank cbn_club_rank_previous discretionary_spend_dollar discretionary_spend_index don_amt_curr_month don_amt_curr_month_minus_01 don_amt_curr_month_minus_02 don_amt_curr_month_minus_03
don_amt_curr_month_minus_04 don_amt_curr_month_minus_05 don_amt_curr_month_minus_06 don_amt_curr_month_minus_07 don_amt_curr_month_minus_08 don_amt_curr_month_minus_09 don_amt_curr_month_minus_10 don_amt_curr_month_minus_11 don_amt_curr_month_minus_12
don_amt_curr_month_minus_13 don_amt_curr_month_minus_14 don_amt_curr_month_minus_15 don_amt_curr_month_minus_16 don_amt_curr_month_minus_17 don_amt_curr_month_minus_18 don_amt_curr_month_minus_19 don_amt_curr_month_minus_20 don_amt_curr_month_minus_21
don_amt_curr_month_minus_22 don_amt_curr_month_minus_23 don_amt_curr_month_minus_24 don_amt_curr_month_minus_25 don_amt_curr_month_minus_26 don_amt_curr_month_minus_27 don_amt_curr_month_minus_28 don_amt_curr_month_minus_29 don_amt_curr_month_minus_30
don_amt_curr_month_minus_31 don_amt_curr_month_minus_32 don_amt_curr_month_minus_33 don_amt_curr_month_minus_34 don_amt_curr_month_minus_35 don_amt_curr_month_plus_01 don_amt_curr_month_plus_02 don_amt_curr_month_plus_03 don_amt_curr_month_plus_04
don_amt_curr_month_plus_05 don_amt_curr_month_plus_06 don_amt_curr_month_plus_07 don_amt_curr_month_plus_08 don_amt_curr_month_plus_09 don_amt_curr_month_plus_10 don_amt_curr_month_plus_11 don_amt_curr_month_plus_12 don_amt_future_year don_amt_lifetime
don_amt_total_12mo don_amt_total_12mo_CBN_Intl don_amt_total_12mo_CBN_Israel don_amt_total_12mo_CBN_OP don_amt_total_12mo_OB don_amt_total_24mo don_amt_total_24mo_CBN_Intl don_amt_total_24mo_CBN_Israel don_amt_total_24mo_CBN_OP don_amt_total_24mo_OB
don_amt_total_36mo don_amt_total_36mo_CBN_Intl don_amt_total_36mo_CBN_Israel don_amt_total_36mo_CBN_OP don_amt_total_36mo_OB don_avg_amt_12mo don_avg_amt_24mo don_avg_amt_36mo don_avg_interval don_cc_first don_check_first don_cnt_cc_12mo don_cnt_cc_24mo
don_cnt_cc_36mo don_cnt_check_12mo don_cnt_check_24mo don_cnt_check_36mo don_cnt_curr_month don_cnt_curr_month_minus_01 don_cnt_curr_month_minus_02 don_cnt_curr_month_minus_03 don_cnt_curr_month_minus_04 don_cnt_curr_month_minus_05
don_cnt_curr_month_minus_06 don_cnt_curr_month_minus_07 don_cnt_curr_month_minus_08 don_cnt_curr_month_minus_09 don_cnt_curr_month_minus_10 don_cnt_curr_month_minus_11 don_cnt_curr_month_minus_12 don_cnt_curr_month_minus_13 don_cnt_curr_month_minus_14
don_cnt_curr_month_minus_15 don_cnt_curr_month_minus_16 don_cnt_curr_month_minus_17 don_cnt_curr_month_minus_18 don_cnt_curr_month_minus_19 don_cnt_curr_month_minus_20 don_cnt_curr_month_minus_21 don_cnt_curr_month_minus_22 don_cnt_curr_month_minus_23
don_cnt_curr_month_minus_24 don_cnt_curr_month_minus_25 don_cnt_curr_month_minus_26 don_cnt_curr_month_minus_27 don_cnt_curr_month_minus_28 don_cnt_curr_month_minus_29 don_cnt_curr_month_minus_30 don_cnt_curr_month_minus_31 don_cnt_curr_month_minus_32
don_cnt_curr_month_minus_33 don_cnt_curr_month_minus_34 don_cnt_curr_month_minus_35 don_cnt_curr_month_plus_01 don_cnt_curr_month_plus_02 don_cnt_curr_month_plus_03 don_cnt_curr_month_plus_04 don_cnt_curr_month_plus_05 don_cnt_curr_month_plus_06
don_cnt_curr_month_plus_07 don_cnt_curr_month_plus_08 don_cnt_curr_month_plus_09 don_cnt_curr_month_plus_10 don_cnt_curr_month_plus_11 don_cnt_curr_month_plus_12 don_cnt_eft_12mo don_cnt_eft_24mo don_cnt_eft_36mo don_cnt_future_year don_cnt_internet_12mo
don_cnt_internet_24mo don_cnt_internet_36mo don_cnt_lifetime don_cnt_other_12mo don_cnt_other_24mo don_cnt_other_36mo don_cnt_paypal_12mo don_cnt_paypal_24mo don_cnt_paypal_36mo don_cnt_stock_12mo don_cnt_stock_24mo don_cnt_stock_36mo don_cnt_total_12mo
don_cnt_total_12mo_CBN_Intl don_cnt_total_12mo_CBN_Israel don_cnt_total_12mo_CBN_OP don_cnt_total_12mo_OB don_cnt_total_24mo don_cnt_total_24mo_CBN_Intl don_cnt_total_24mo_CBN_Israel don_cnt_total_24mo_CBN_OP don_cnt_total_24mo_OB don_cnt_total_36mo
don_cnt_total_36mo_CBN_Intl don_cnt_total_36mo_CBN_Israel don_cnt_total_36mo_CBN_OP don_cnt_total_36mo_OB don_delay_after_inception don_each_of_last_12mo don_eft_first don_max_lifetime don_only_to_CBN_Israel don_only_to_OP don_only_to_SuperBook
don_other_first don_paypal_first don_stock_first equifax_risk_score field_rep_ind fixed_income_flag fulfillment_12mo_member fulfillment_12mo_one_time fulfillment_24mo_member fulfillment_24mo_one_time fulfillment_36mo_member fulfillment_36mo_one_time
fulfillment_lifetime in_phone_MIP_cnt_12mo_1T in_phone_MIP_cnt_12mo_member in_phone_MIP_cnt_24mo_1T in_phone_MIP_cnt_24mo_member in_phone_MIP_cnt_36mo_1T in_phone_MIP_cnt_36mo_member inception_apr inception_aug inception_club_hoy inception_dec
inception_email inception_facebook inception_feb inception_google inception_interactive_show inception_internet inception_jan inception_jul inception_jun inception_mar inception_may inception_nov inception_oct inception_phone inception_sep
inception_twitter inception_vida_dura inception_year inception_youtube income360 internet_cnt_12mo_member internet_cnt_12mo_one_time internet_cnt_24mo_member internet_cnt_24mo_one_time internet_cnt_36mo_member internet_cnt_36mo_one_time last_pledge_amount
mail_cnt_12mo_1T mail_cnt_12mo_member mail_cnt_24mo_1T mail_cnt_24mo_member mail_cnt_36mo_1T mail_cnt_36mo_member mail_cnt_GC_01mo mail_cnt_GC_03mo mail_cnt_GC_06mo mail_cnt_GC_12mo mail_cnt_GC_24mo mail_cnt_GC_36mo mail_cnt_other_01mo mail_cnt_other_03mo
mail_cnt_other_06mo mail_cnt_other_12mo mail_cnt_other_24mo mail_cnt_other_36mo mail_cnt_receipt_01mo mail_cnt_receipt_03mo mail_cnt_receipt_06mo mail_cnt_receipt_12mo mail_cnt_receipt_24mo mail_cnt_receipt_36mo market_syndication_ABC
market_syndication_CBS market_syndication_CHR market_syndication_CTN market_syndication_CW market_syndication_FOX market_syndication_IND market_syndication_MNT market_syndication_NBC market_syndication_TBN market_syndication_any
months_since_first_donation months_since_first_pledge months_since_last_club_change months_since_last_donation months_since_last_pledge number_adults_in_hh number_children_in_hh number_persons_in_hh order_cnt_eprod_01mo order_cnt_eprod_03mo
order_cnt_eprod_06mo order_cnt_eprod_12mo order_cnt_eprod_24mo order_cnt_eprod_36mo order_cnt_financial_01mo order_cnt_financial_03mo order_cnt_financial_06mo order_cnt_financial_12mo order_cnt_financial_24mo order_cnt_financial_36mo order_cnt_health_01mo
order_cnt_health_03mo order_cnt_health_06mo order_cnt_health_12mo order_cnt_health_24mo order_cnt_health_36mo order_cnt_ministry_01mo order_cnt_ministry_03mo order_cnt_ministry_06mo order_cnt_ministry_12mo order_cnt_ministry_24mo order_cnt_ministry_36mo
order_cnt_other_01mo order_cnt_other_03mo order_cnt_other_06mo order_cnt_other_12mo order_cnt_other_24mo order_cnt_other_36mo order_cnt_total_01mo order_cnt_total_03mo order_cnt_total_06mo order_cnt_total_12mo order_cnt_total_24mo order_cnt_total_36mo
out_phone_MIP_cnt_12mo_1T out_phone_MIP_cnt_12mo_member out_phone_MIP_cnt_24mo_1T out_phone_MIP_cnt_24mo_member out_phone_MIP_cnt_36mo_1T out_phone_MIP_cnt_36mo_member pledge_amt_12mo_member pledge_amt_12mo_one_time pledge_amt_24mo_member
pledge_amt_24mo_one_time pledge_amt_36mo_member pledge_amt_36mo_one_time pledge_cnt_12mo_member pledge_cnt_12mo_one_time pledge_cnt_24mo_member pledge_cnt_24mo_one_time pledge_cnt_36mo_member pledge_cnt_36mo_one_time pledge_curr_annual
pledge_curr_annual_amt pledge_curr_one_time pledge_curr_one_time_amt pledge_curr_perpetual pledge_curr_perpetual_amt pledge_inception_annual pledge_inception_one_time pledge_inception_perpetual pledge_obligation_12mo pledge_obligation_24mo
pledge_obligation_36mo pledge_telethon_ind_fall pledge_telethon_ind_jan pledge_telethon_ind_may pledges_paid_12mo pledges_paid_24mo pledges_paid_36mo response_cnt_GC_01mo response_cnt_GC_03mo response_cnt_GC_06mo response_cnt_GC_12mo response_cnt_GC_24mo
response_cnt_GC_36mo response_cnt_other_01mo response_cnt_other_03mo response_cnt_other_06mo response_cnt_other_12mo response_cnt_other_24mo response_cnt_other_36mo response_cnt_receipt_01mo response_cnt_receipt_03mo response_cnt_receipt_06mo
response_cnt_receipt_12mo response_cnt_receipt_24mo response_cnt_receipt_36mo scheduled_donor solicitation_email solicitation_mail solicitation_phone solicitation_visit speaks_spanish_at_home telethon_incept_fall telethon_incept_jan telethon_incept_may
telethon_name
MPRINT(EM_DIAGRAM):  ;
30522      target
30523      continuing_donor
30524      ;
MPRINT(EM_DIAGRAM):   target continuing_donor ;
30525      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: Records processed = 100000   Memory used = 511K.
NOTE: Records processed = 200000   Memory used = 511K.
NOTE: Records processed = 228324   Memory used = 511K.
NOTE: There were 228324 observations read from the data set EMWS2.PART_TRAIN.
NOTE: The data set WORK.TRANSCLASSOUT has 241 observations and 9 variables.
NOTE: PROCEDURE DMDB used (Total process time):
      real time           6.14 seconds
      cpu time            2.03 seconds
 
 
MPRINT(EM_DIAGRAM):   quit;
MPRINT(EM_DIAGRAM):   *--- end code ---*;
30526      quit;
30527      *--- end code ---*;
 
30528      data WORK.TransINTERVALMETA;
MPRINT(EM_DIAGRAM):    data WORK.TransINTERVALMETA;
30529      set WORK.M2V0G0HI;
MPRINT(EM_DIAGRAM):   set WORK.M2V0G0HI;
30530      if LEVEL ne 'INTERVAL' then delete;
MPRINT(EM_DIAGRAM):   if LEVEL ne 'INTERVAL' then delete;
30531      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 506 observations read from the data set WORK.M2V0G0HI.
NOTE: The data set WORK.TRANSINTERVALMETA has 489 observations and 22 variables.
NOTE: DATA statement used (Total process time):
      real time           0.02 seconds
      cpu time            0.00 seconds
 
 
30532      *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):    *------------------------------------------------------------*;
30533      * Trans: Determining Variables to Scale;
MPRINT(EM_DIAGRAM):   * Trans: Determining Variables to Scale;
30534      *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
30535      data WORK.M2F0QI17;
MPRINT(EM_DIAGRAM):   data WORK.M2F0QI17;
30536      set WORK.M2F0QI17;
MPRINT(EM_DIAGRAM):   set WORK.M2F0QI17;
30537      where (TYPE="N" and (METHOD in("MAX_NORM", "MAX_CORR", "EQUALIZE", "OP_MAX_NORM", "OP_EQUALIZE"))) or (ROLE eq "FREQ");
MPRINT(EM_DIAGRAM):   where (TYPE="N" and (METHOD in("MAX_NORM", "MAX_CORR", "EQUALIZE", "OP_MAX_NORM", "OP_EQUALIZE"))) or (ROLE eq "FREQ");
30538      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 0 observations read from the data set WORK.M2F0QI17.
      WHERE ((TYPE='N') and METHOD in ('EQUALIZE', 'MAX_CORR', 'MAX_NORM', 'OP_EQUALIZE', 'OP_MAX_NORM')) or (ROLE='FREQ');
NOTE: The data set WORK.M2F0QI17 has 0 observations and 22 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.03 seconds
 
 
NOTE: This SAS session is using a registry in WORK.  All changes will be lost at the end of this session.
*------------------------------------------------------------*
*  Trans: Creating EMWS2.Trans_RESULT
*------------------------------------------------------------*
MPRINT(EM_DIAGRAM):      data EMWS2.Trans_RESULT;
MPRINT(EM_DIAGRAM):   length NAME NEWVAR $32 LEVEL $10 POWER 8 FORMULA $70 LABEL $44 TERM $200;
MPRINT(EM_DIAGRAM):   NAME = "don_amt_total_12mo";
MPRINT(EM_DIAGRAM):   NEWVAR = "LG10_don_amt_total_12mo";
MPRINT(EM_DIAGRAM):   POWER = .;
MPRINT(EM_DIAGRAM):   FORMULA = "log10(don_amt_total_12mo  + 1)";
MPRINT(EM_DIAGRAM):   LABEL = 'Transformed: don_amt_total_12mo';
MPRINT(EM_DIAGRAM):   LEVEL = "INTERVAL";
MPRINT(EM_DIAGRAM):   TYPE = "N";
MPRINT(EM_DIAGRAM):   output;
MPRINT(EM_DIAGRAM):   NAME = "don_amt_total_24mo";
MPRINT(EM_DIAGRAM):   NEWVAR = "LG10_don_amt_total_24mo";
MPRINT(EM_DIAGRAM):   POWER = .;
MPRINT(EM_DIAGRAM):   FORMULA = "log10(don_amt_total_24mo  + 1)";
MPRINT(EM_DIAGRAM):   LABEL = 'Transformed: don_amt_total_24mo';
MPRINT(EM_DIAGRAM):   LEVEL = "INTERVAL";
MPRINT(EM_DIAGRAM):   TYPE = "N";
MPRINT(EM_DIAGRAM):   output;
MPRINT(EM_DIAGRAM):   NAME = "don_amt_total_36mo";
MPRINT(EM_DIAGRAM):   NEWVAR = "LG10_don_amt_total_36mo";
MPRINT(EM_DIAGRAM):   POWER = .;
MPRINT(EM_DIAGRAM):   FORMULA = "log10(don_amt_total_36mo  + 1)";
MPRINT(EM_DIAGRAM):   LABEL = 'Transformed: don_amt_total_36mo';
MPRINT(EM_DIAGRAM):   LEVEL = "INTERVAL";
MPRINT(EM_DIAGRAM):   TYPE = "N";
MPRINT(EM_DIAGRAM):   output;
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):   proc sort data=EMWS2.Trans_RESULT NOTHREADS;
MPRINT(EM_DIAGRAM):   by NAME;
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):   proc sort data=WORK.M2V0G0HI out=WORK._TRANSRESLT(RENAME=(LEVEL=INPUTLEVEL TYPE=INPUTTYPE) KEEP=NAME ROLE LEVEL TYPE) NOTHREADS;
MPRINT(EM_DIAGRAM):   by NAME;
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):   data EMWS2.Trans_RESULT(RENAME=(NAME=INPUTNAME NEWVAR=NAME));
MPRINT(EM_DIAGRAM):   merge EMWS2.Trans_RESULT(in=a) WORK._TRANSRESLT;
MPRINT(EM_DIAGRAM):   by NAME;
MPRINT(EM_DIAGRAM):   if a then output;
MPRINT(EM_DIAGRAM):   run;
WARNING: Multiple lengths were specified for the BY variable NAME by input data sets. This might cause unexpected results.
MPRINT(EM_DIAGRAM):   proc datasets library=EMWS2 nolist;
MPRINT(EM_DIAGRAM):   modify Trans_RESULT;
MPRINT(EM_DIAGRAM):   label INPUTNAME = "Input Name" NAME = "Output Name" POWER = "Power" FORMULA = "Formula" ROLE = "rpt_role_vlabel" INPUTLEVEL = "Input Level" LEVEL = "Output Level" INPUTTYPE = "Input Type" TYPE = "Output Type";
MPRINT(EM_DIAGRAM):   run;
 
NOTE: PROCEDURE DATASETS used (Total process time):
      real time           0.15 seconds
      cpu time            0.04 seconds
 
 
30585      data EMWS2.Trans_RESULT;
MPRINT(EM_DIAGRAM):   data EMWS2.Trans_RESULT;
30586      length NAME $32 FORMULA $70 POWER 8 ROLE $32 LEVEL $10 INPUTNAME $32 INPUTTYPE $1 LABEL $44;
MPRINT(EM_DIAGRAM):   length NAME $32 FORMULA $70 POWER 8 ROLE $32 LEVEL $10 INPUTNAME $32 INPUTTYPE $1 LABEL $44;
30587      label INPUTNAME ='Input Name' NAME='Name' POWER='Power' FORMULA='Formula' ROLE='Role' INPUTLEVEL='Input Level' LEVEL='Level' INPUTTYPE='Input Type' TYPE='Type';
MPRINT(EM_DIAGRAM):   label INPUTNAME = 'Input Name' NAME= 'Name' POWER= 'Power' FORMULA= 'Formula' ROLE= 'Role' INPUTLEVEL= 'Input Level' LEVEL= 'Level' INPUTTYPE= 'Input Type' TYPE= 'Type';
30588      set EMWS2.Trans_RESULT;
MPRINT(EM_DIAGRAM):   set EMWS2.Trans_RESULT;
30589      if INPUTNAME = '' then INPUTNAME = "Mixture of variables";
MPRINT(EM_DIAGRAM):   if INPUTNAME = '' then INPUTNAME = "Mixture of variables";
30590      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 3 observations read from the data set EMWS2.TRANS_RESULT.
NOTE: The data set EMWS2.TRANS_RESULT has 3 observations and 11 variables.
NOTE: DATA statement used (Total process time):
      real time           0.06 seconds
      cpu time            0.00 seconds
 
 
30591      data WORK.M121QYDM;
MPRINT(EM_DIAGRAM):    data WORK.M121QYDM;
30592      set WORK.M121QYDM;
MPRINT(EM_DIAGRAM):   set WORK.M121QYDM;
30593      if ROLE='REJECTED' then ROLE='INPUT';
MPRINT(EM_DIAGRAM):   if ROLE='REJECTED' then ROLE='INPUT';
30594      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 3 observations read from the data set WORK.M121QYDM.
NOTE: The data set WORK.M121QYDM has 3 observations and 11 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.00 seconds
 
 
*------------------------------------------------------------*
*  Trans: Computing summary statistics for transformed variables
*------------------------------------------------------------*
MPRINT(EM_DIAGRAM):    data WORK.Trans_TRANSFORM / view=WORK.Trans_TRANSFORM;
MPRINT(EM_DIAGRAM):   set EMWS2.Part_TRAIN;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * TRANSFORM: don_amt_total_12mo , log10(don_amt_total_12mo + 1);
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   label LG10_don_amt_total_12mo = 'Transformed: don_amt_total_12mo';
MPRINT(EM_DIAGRAM):   length LG10_don_amt_total_12mo 8;
MPRINT(EM_DIAGRAM):   if don_amt_total_12mo eq . then LG10_don_amt_total_12mo = .;
MPRINT(EM_DIAGRAM):   else do;
MPRINT(EM_DIAGRAM):   if don_amt_total_12mo + 1 > 0 then LG10_don_amt_total_12mo = log10(don_amt_total_12mo + 1);
MPRINT(EM_DIAGRAM):   else LG10_don_amt_total_12mo = .;
MPRINT(EM_DIAGRAM):   end;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * TRANSFORM: don_amt_total_24mo , log10(don_amt_total_24mo + 1);
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   label LG10_don_amt_total_24mo = 'Transformed: don_amt_total_24mo';
MPRINT(EM_DIAGRAM):   length LG10_don_amt_total_24mo 8;
MPRINT(EM_DIAGRAM):   if don_amt_total_24mo eq . then LG10_don_amt_total_24mo = .;
MPRINT(EM_DIAGRAM):   else do;
MPRINT(EM_DIAGRAM):   if don_amt_total_24mo + 1 > 0 then LG10_don_amt_total_24mo = log10(don_amt_total_24mo + 1);
MPRINT(EM_DIAGRAM):   else LG10_don_amt_total_24mo = .;
MPRINT(EM_DIAGRAM):   end;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * TRANSFORM: don_amt_total_36mo , log10(don_amt_total_36mo + 1);
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   label LG10_don_amt_total_36mo = 'Transformed: don_amt_total_36mo';
MPRINT(EM_DIAGRAM):   length LG10_don_amt_total_36mo 8;
MPRINT(EM_DIAGRAM):   if don_amt_total_36mo eq . then LG10_don_amt_total_36mo = .;
MPRINT(EM_DIAGRAM):   else do;
MPRINT(EM_DIAGRAM):   if don_amt_total_36mo + 1 > 0 then LG10_don_amt_total_36mo = log10(don_amt_total_36mo + 1);
MPRINT(EM_DIAGRAM):   else LG10_don_amt_total_36mo = .;
MPRINT(EM_DIAGRAM):   end;
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):    *------------------------------------------------------------* ;
MPRINT(EM_DIAGRAM):   * EM: DMDBClass Macro ;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------* ;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------* ;
MPRINT(EM_DIAGRAM):   * EM: DMDBVar Macro ;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------* ;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * EM: Create DMDB;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   proc dmdb batch data=WORK.Trans_TRANSFORM dmdbcat=WORK.EM_DMDB maxlevel = 513 ;
MPRINT(EM_DIAGRAM):   var
MPRINT(DMDBVAR):   LG10_don_amt_total_12mo LG10_don_amt_total_24mo LG10_don_amt_total_36mo
MPRINT(EM_DIAGRAM):  ;
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):   quit;
MPRINT(EM_DIAGRAM):   *--- end code ---*;
MPRINT(EM_DIAGRAM):    data WORK.Trans_TEMP;
MPRINT(EM_DIAGRAM):   length SOURCE $6 NAME $32;
MPRINT(EM_DIAGRAM):   label SOURCE = "Source" NAME = "Variable Name" NLEVEL = "Number of Levels" NMISS = "Missing" MIN = "Minimum" MAX = "Maximum" MEAN = "Mean" STD = "Standard Deviation" SKEWNESS = "Skewness" KURTOSIS = "Kurtosis";
MPRINT(EM_DIAGRAM):   SOURCE = "OUTPUT";
MPRINT(EM_DIAGRAM):   NAME = "LG10_don_amt_total_12mo";
MPRINT(EM_DIAGRAM):   NMISS = 0;
MPRINT(EM_DIAGRAM):   NLEVEL = .;
MPRINT(EM_DIAGRAM):   MIN = 0;
MPRINT(EM_DIAGRAM):   MAX = 6.10037088979558;
MPRINT(EM_DIAGRAM):   MEAN = 1.57950963684775;
MPRINT(EM_DIAGRAM):   STD = 1.19413247845811;
MPRINT(EM_DIAGRAM):   SKEWNESS = -0.25774100275454;
MPRINT(EM_DIAGRAM):   KURTOSIS = -1.41439614256863;
MPRINT(EM_DIAGRAM):   output;
MPRINT(EM_DIAGRAM):   SOURCE = "OUTPUT";
MPRINT(EM_DIAGRAM):   NAME = "LG10_don_amt_total_24mo";
MPRINT(EM_DIAGRAM):   NMISS = 0;
MPRINT(EM_DIAGRAM):   NLEVEL = .;
MPRINT(EM_DIAGRAM):   MIN = 0;
MPRINT(EM_DIAGRAM):   MAX = 6.25887686865277;
MPRINT(EM_DIAGRAM):   MEAN = 2.03337432228251;
MPRINT(EM_DIAGRAM):   STD = 1.12127766495813;
MPRINT(EM_DIAGRAM):   SKEWNESS = -0.66715936138023;
MPRINT(EM_DIAGRAM):   KURTOSIS = -0.61263935453537;
MPRINT(EM_DIAGRAM):   output;
MPRINT(EM_DIAGRAM):   SOURCE = "OUTPUT";
MPRINT(EM_DIAGRAM):   NAME = "LG10_don_amt_total_36mo";
MPRINT(EM_DIAGRAM):   NMISS = 0;
MPRINT(EM_DIAGRAM):   NLEVEL = .;
MPRINT(EM_DIAGRAM):   MIN = 0.00432137378264;
MPRINT(EM_DIAGRAM):   MAX = 6.36828707089544;
MPRINT(EM_DIAGRAM):   MEAN = 2.47257967472444;
MPRINT(EM_DIAGRAM):   STD = 0.77063816920771;
MPRINT(EM_DIAGRAM):   SKEWNESS = -0.2793536686013;
MPRINT(EM_DIAGRAM):   KURTOSIS = -0.41516688207826;
MPRINT(EM_DIAGRAM):   output;
MPRINT(EM_DIAGRAM):   run;
30691      data WORK.TRANSFOR_3W7O7GV_STATISTIC;
MPRINT(EM_DIAGRAM):    data WORK.TRANSFOR_3W7O7GV_STATISTIC;
30692      set WORK.Trans_TEMP;
MPRINT(EM_DIAGRAM):   set WORK.Trans_TEMP;
30693      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 3 observations read from the data set WORK.TRANS_TEMP.
NOTE: The data set WORK.TRANSFOR_3W7O7GV_STATISTIC has 3 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.02 seconds
      cpu time            0.00 seconds
 
 
30694      %exploreSample(DATA=EMWS2.Part_TRAIN, OUTPUT=EMWS2.Trans_SAMPLE_DATA, METADATA=EMWS2.Part_CMeta_TRAIN, VARS=, METHOD=FIRSTN, SIZE=DEFAULT, ALPHA=0.01, PVALUE=0.01, SEED=12345);
MPRINT(EM_DIAGRAM):
MPRINT(EXPLORESAMPLE):   filename x catalog 'sashelp.emutil.exploreobs.source';
MPRINT(EXPLORESAMPLE):   filename x;
NOTE: Fileref X has been deassigned.
NOTE: EXPLOREOBS EMWS2.Part_TRAIN : vars= 558 : recl= 4720 : max=10000 : def= 1000
MPRINT(EXPLORESAMPLE):   ;
MPRINT(HPDM_PERFORMANCE):  ;
PERFORMANCE  DETAILS
MPRINT(EXPLORESAMPLE):  ;
*------------------------------------------------------------*
* FirstN/Top sample
*------------------------------------------------------------*
MPRINT(EXPLORESAMPLE):   data EMWS2.Trans_SAMPLE_DATA;
MPRINT(EXPLORESAMPLE):   set EMWS2.Part_TRAIN(obs= 1000 );
MPRINT(EXPLORESAMPLE):   run;
 
NOTE: There were 1000 observations read from the data set EMWS2.PART_TRAIN.
NOTE: The data set EMWS2.TRANS_SAMPLE_DATA has 1000 observations and 558 variables.
NOTE: DATA statement used (Total process time):
      real time           0.16 seconds
      cpu time            0.04 seconds
 
 
MPRINT(EM_DIAGRAM):  ;
 
30871      proc print data = EMWS2.Trans_RESULT(obs=500) noobs label;
MPRINT(EM_DIAGRAM):    proc print data = EMWS2.Trans_RESULT(obs=500) noobs label;
30872      title9 "%sysfunc(sasmsg(sashelp.dmine, rpt_computedtransformations_title, NOQUOTE))";
MPRINT(EM_DIAGRAM):   title9 "Computed Transformations";
30873      title10 "%sysfunc(sasmsg(sashelp.dmine, rpt_maxObsPrinted_title, NOQUOTE))";
MPRINT(EM_DIAGRAM):   title10 "(maximum 500 observations printed)";
MPRINT(EM_DIAGRAM):   var INPUTNAME ROLE INPUTLEVEL NAME LEVEL FORMULA;
MPRINT(EM_DIAGRAM):   run;
30874      var INPUTNAME ROLE INPUTLEVEL NAME LEVEL FORMULA;
30875      run;
 
NOTE: There were 3 observations read from the data set EMWS2.TRANS_RESULT.
NOTE: The PROCEDURE PRINT printed page 8.
NOTE: PROCEDURE PRINT used (Total process time):
      real time           0.02 seconds
      cpu time            0.01 seconds
 
 
30876      title9;
MPRINT(EM_DIAGRAM):   title9;
30877      title10;
MPRINT(EM_DIAGRAM):   title10;
MPRINT(EM_DIAGRAM):    proc printto;
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):    data _null_;
MPRINT(EM_DIAGRAM):   call symput('NLDATE', strip(put(date(), NLDATE.)));
MPRINT(EM_DIAGRAM):   call symput('NLTIME', strip(put(datetime(), NLTIME.)));
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):   data _null_;
MPRINT(EM_DIAGRAM):   nldate= sasmsg("sashelp.dmine", "log_date_note", 'N', "February 26, 2025" );
MPRINT(EM_DIAGRAM):   nltime= sasmsg("sashelp.dmine", "log_time_note", 'N', "18:37:26" );
MPRINT(EM_DIAGRAM):   put "*------------------------------------------------------------*";
MPRINT(EM_DIAGRAM):   put "* Score Log";
MPRINT(EM_DIAGRAM):   put nldate;
MPRINT(EM_DIAGRAM):   put nltime;
MPRINT(EM_DIAGRAM):   put "*------------------------------------------------------------*";
MPRINT(EM_DIAGRAM):   run;
*------------------------------------------------------------*
* Score Log
Date:                February 26, 2025
Time:                18:37:26
*------------------------------------------------------------*
MPRINT(EM_DIAGRAM):    filename O0GOEG8Y "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMSCORE.out" encoding="UTF-8" NOBOM;
MPRINT(EM_DIAGRAM):   proc printto print=O0GOEG8Y new;
MPRINT(EM_DIAGRAM):   run;
30979      proc sort data=EMWS2.Trans_RESULT out=WORK.TransRESULT NOTHREADS;
MPRINT(EM_DIAGRAM):    proc sort data=EMWS2.Trans_RESULT out=WORK.TransRESULT NOTHREADS;
30980      by INPUTNAME;
MPRINT(EM_DIAGRAM):   by INPUTNAME;
30981      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 3 observations read from the data set EMWS2.TRANS_RESULT.
NOTE: The data set WORK.TRANSRESULT has 3 observations and 11 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.04 seconds
      cpu time            0.01 seconds
 
 
30982      proc sort data=EMWS2.Trans_VariableSet(KEEP= NAME FAMILY REPORT rename=(NAME=INPUTNAME)) out=WORK.TransVARSET NOTHREADS;
MPRINT(EM_DIAGRAM):   proc sort data=EMWS2.Trans_VariableSet(KEEP= NAME FAMILY REPORT rename=(NAME=INPUTNAME)) out=WORK.TransVARSET NOTHREADS;
30983      by INPUTNAME;
MPRINT(EM_DIAGRAM):   by INPUTNAME;
30984      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 507 observations read from the data set EMWS2.TRANS_VARIABLESET.
NOTE: The data set WORK.TRANSVARSET has 507 observations and 3 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.07 seconds
      cpu time            0.03 seconds
 
 
30985      data WORK.TransRESULT;
MPRINT(EM_DIAGRAM):   data WORK.TransRESULT;
30986      merge WORK.TransRESULT WORK.TransVARSET;
MPRINT(EM_DIAGRAM):   merge WORK.TransRESULT WORK.TransVARSET;
30987      by INPUTNAME;
MPRINT(EM_DIAGRAM):   by INPUTNAME;
30988      if NAME ne '' then output;
MPRINT(EM_DIAGRAM):   if NAME ne '' then output;
30989      run;
MPRINT(EM_DIAGRAM):   run;
 
WARNING: Multiple lengths were specified for the BY variable INPUTNAME by input data sets. This might cause unexpected results.
NOTE: There were 3 observations read from the data set WORK.TRANSRESULT.
NOTE: There were 507 observations read from the data set WORK.TRANSVARSET.
NOTE: The data set WORK.TRANSRESULT has 3 observations and 13 variables.
NOTE: DATA statement used (Total process time):
      real time           0.04 seconds
      cpu time            0.01 seconds
 
 
30990      filename _code "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\TRAINDELTACODE.sas";
MPRINT(EM_DIAGRAM):   filename _code "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\TRAINDELTACODE.sas";
30991      data _null_;
MPRINT(EM_DIAGRAM):   data _null_;
30992      set WORK.TransRESULT;
MPRINT(EM_DIAGRAM):   set WORK.TransRESULT;
30993      length String $200;
MPRINT(EM_DIAGRAM):   length String $200;
30994      file _code;
MPRINT(EM_DIAGRAM):   file _code;
30995      String = 'if NAME="'!!strip(name)!!'" then do;';
MPRINT(EM_DIAGRAM):   String = 'if NAME="'!!strip(name)!!'" then do;';
30996      put / String;
MPRINT(EM_DIAGRAM):   put / String;
30997      if family ne '' then do;
MPRINT(EM_DIAGRAM):   if family ne '' then do;
30998      String = '   FAMILY ="'!!strip(family)!!'";';
MPRINT(EM_DIAGRAM):   String = '   FAMILY ="'!!strip(family)!!'";';
30999      put String;
MPRINT(EM_DIAGRAM):   put String;
31000      end;
MPRINT(EM_DIAGRAM):   end;
31001      select(formula);
MPRINT(EM_DIAGRAM):   select(formula);
31002      when('Interaction') put '   FAMILY  ="INTERACTION";';
MPRINT(EM_DIAGRAM):   when('Interaction') put '   FAMILY  ="INTERACTION";';
31003      when('') put '   COMMENT = "' method 'transformation of ' INPUTVAR '";';
MPRINT(EM_DIAGRAM):   when('') put '   COMMENT = "' method 'transformation of ' INPUTVAR '";';
31004      otherwise put '   COMMENT = "' formula '";';
MPRINT(EM_DIAGRAM):   otherwise put '   COMMENT = "' formula '";';
31005      end;
MPRINT(EM_DIAGRAM):   end;
31006      String = '   ROLE ="'!!strip(role)!!'";';
MPRINT(EM_DIAGRAM):   String = '   ROLE ="'!!strip(role)!!'";';
31007      put String;
MPRINT(EM_DIAGRAM):   put String;
31008      if REPORT="" then REPORT = "N";
MPRINT(EM_DIAGRAM):   if REPORT="" then REPORT = "N";
31009      String = '   REPORT ="'!!strip(report)!!'";';
MPRINT(EM_DIAGRAM):   String = '   REPORT ="'!!strip(report)!!'";';
31010      put String;
MPRINT(EM_DIAGRAM):   put String;
31011      String = '   LEVEL  ="'!!strip(level)!!'";';
MPRINT(EM_DIAGRAM):   String = '   LEVEL  ="'!!strip(level)!!'";';
31012      put String;
MPRINT(EM_DIAGRAM):   put String;
31013      put 'end;';
MPRINT(EM_DIAGRAM):   put 'end;';
31014      if formula ne 'Interaction' and INPUTNAME ne '' then do;
MPRINT(EM_DIAGRAM):   if formula ne 'Interaction' and INPUTNAME ne '' then do;
31015      String = 'if NAME="'!!strip(INPUTNAME)!!'" then delete;';
MPRINT(EM_DIAGRAM):   String = 'if NAME="'!!strip(INPUTNAME)!!'" then delete;';
31016      put String;
MPRINT(EM_DIAGRAM):   put String;
31017      end;
MPRINT(EM_DIAGRAM):   end;
31018      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: Variable method is uninitialized.
NOTE: Variable INPUTVAR is uninitialized.
NOTE: The file _CODE is:
      Filename=X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\TRAINDELTACODE.sas,
      RECFM=V,LRECL=32767,File Size (bytes)=0,
      Last Modified=26Feb2025:18:37:27,
      Create Time=26Feb2025:17:29:47
 
NOTE: 24 records were written to the file _CODE.
      The minimum record length was 0.
      The maximum record length was 47.
NOTE: There were 3 observations read from the data set WORK.TRANSRESULT.
NOTE: DATA statement used (Total process time):
      real time           0.02 seconds
      cpu time            0.00 seconds
 
 
31019      filename _code;
MPRINT(EM_DIAGRAM):   filename _code;
NOTE: Fileref _CODE has been deassigned.
31020      filename emflow "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMFLOWSCORE.sas";
MPRINT(EM_DIAGRAM):    filename emflow "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMFLOWSCORE.sas";
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * Trans: Scoring DATA data;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
31021      *------------------------------------------------------------*;
31022      * Trans: Scoring DATA data;
31023      *------------------------------------------------------------*;
31024      data EMWS2.Trans_TRAIN
31025      / view=EMWS2.Trans_TRAIN
31026      ;
MPRINT(EM_DIAGRAM):   data EMWS2.Trans_TRAIN / view=EMWS2.Trans_TRAIN ;
31027      set EMWS2.Part_TRAIN
31028      ;
MPRINT(EM_DIAGRAM):   set EMWS2.Part_TRAIN ;
31029      %inc emflow;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * Computed Code;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * TRANSFORM: don_amt_total_12mo , log10(don_amt_total_12mo + 1);
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   label LG10_don_amt_total_12mo = 'Transformed: don_amt_total_12mo';
MPRINT(EM_DIAGRAM):   length LG10_don_amt_total_12mo 8;
MPRINT(EM_DIAGRAM):   if don_amt_total_12mo eq . then LG10_don_amt_total_12mo = .;
MPRINT(EM_DIAGRAM):   else do;
MPRINT(EM_DIAGRAM):   if don_amt_total_12mo + 1 > 0 then LG10_don_amt_total_12mo = log10(don_amt_total_12mo + 1);
MPRINT(EM_DIAGRAM):   else LG10_don_amt_total_12mo = .;
MPRINT(EM_DIAGRAM):   end;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * TRANSFORM: don_amt_total_24mo , log10(don_amt_total_24mo + 1);
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   label LG10_don_amt_total_24mo = 'Transformed: don_amt_total_24mo';
MPRINT(EM_DIAGRAM):   length LG10_don_amt_total_24mo 8;
MPRINT(EM_DIAGRAM):   if don_amt_total_24mo eq . then LG10_don_amt_total_24mo = .;
MPRINT(EM_DIAGRAM):   else do;
MPRINT(EM_DIAGRAM):   if don_amt_total_24mo + 1 > 0 then LG10_don_amt_total_24mo = log10(don_amt_total_24mo + 1);
MPRINT(EM_DIAGRAM):   else LG10_don_amt_total_24mo = .;
MPRINT(EM_DIAGRAM):   end;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * TRANSFORM: don_amt_total_36mo , log10(don_amt_total_36mo + 1);
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   label LG10_don_amt_total_36mo = 'Transformed: don_amt_total_36mo';
MPRINT(EM_DIAGRAM):   length LG10_don_amt_total_36mo 8;
MPRINT(EM_DIAGRAM):   if don_amt_total_36mo eq . then LG10_don_amt_total_36mo = .;
MPRINT(EM_DIAGRAM):   else do;
MPRINT(EM_DIAGRAM):   if don_amt_total_36mo + 1 > 0 then LG10_don_amt_total_36mo = log10(don_amt_total_36mo + 1);
MPRINT(EM_DIAGRAM):   else LG10_don_amt_total_36mo = .;
MPRINT(EM_DIAGRAM):   end;
31063      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: DATA STEP view saved on file EMWS2.TRANS_TRAIN.
NOTE: A stored DATA STEP view cannot run under a different operating system.
NOTE: DATA statement used (Total process time):
      real time           0.06 seconds
      cpu time            0.01 seconds
 
 
MPRINT(EM_DIAGRAM):   quit;
31064      quit;
31065      filename emflow;
MPRINT(EM_DIAGRAM):   filename emflow;
NOTE: Fileref EMFLOW has been deassigned.
31066      filename emflow "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMFLOWSCORE.sas";
MPRINT(EM_DIAGRAM):    filename emflow "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMFLOWSCORE.sas";
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * Trans: Scoring VALIDATE data;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
31067      *------------------------------------------------------------*;
31068      * Trans: Scoring VALIDATE data;
31069      *------------------------------------------------------------*;
31070      data EMWS2.Trans_VALIDATE
31071      / view=EMWS2.Trans_VALIDATE
31072      ;
MPRINT(EM_DIAGRAM):   data EMWS2.Trans_VALIDATE / view=EMWS2.Trans_VALIDATE ;
31073      set EMWS2.Part_VALIDATE
31074      ;
MPRINT(EM_DIAGRAM):   set EMWS2.Part_VALIDATE ;
31075      %inc emflow;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * Computed Code;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * TRANSFORM: don_amt_total_12mo , log10(don_amt_total_12mo + 1);
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   label LG10_don_amt_total_12mo = 'Transformed: don_amt_total_12mo';
MPRINT(EM_DIAGRAM):   length LG10_don_amt_total_12mo 8;
MPRINT(EM_DIAGRAM):   if don_amt_total_12mo eq . then LG10_don_amt_total_12mo = .;
MPRINT(EM_DIAGRAM):   else do;
MPRINT(EM_DIAGRAM):   if don_amt_total_12mo + 1 > 0 then LG10_don_amt_total_12mo = log10(don_amt_total_12mo + 1);
MPRINT(EM_DIAGRAM):   else LG10_don_amt_total_12mo = .;
MPRINT(EM_DIAGRAM):   end;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * TRANSFORM: don_amt_total_24mo , log10(don_amt_total_24mo + 1);
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   label LG10_don_amt_total_24mo = 'Transformed: don_amt_total_24mo';
MPRINT(EM_DIAGRAM):   length LG10_don_amt_total_24mo 8;
MPRINT(EM_DIAGRAM):   if don_amt_total_24mo eq . then LG10_don_amt_total_24mo = .;
MPRINT(EM_DIAGRAM):   else do;
MPRINT(EM_DIAGRAM):   if don_amt_total_24mo + 1 > 0 then LG10_don_amt_total_24mo = log10(don_amt_total_24mo + 1);
MPRINT(EM_DIAGRAM):   else LG10_don_amt_total_24mo = .;
MPRINT(EM_DIAGRAM):   end;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * TRANSFORM: don_amt_total_36mo , log10(don_amt_total_36mo + 1);
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   label LG10_don_amt_total_36mo = 'Transformed: don_amt_total_36mo';
MPRINT(EM_DIAGRAM):   length LG10_don_amt_total_36mo 8;
MPRINT(EM_DIAGRAM):   if don_amt_total_36mo eq . then LG10_don_amt_total_36mo = .;
MPRINT(EM_DIAGRAM):   else do;
MPRINT(EM_DIAGRAM):   if don_amt_total_36mo + 1 > 0 then LG10_don_amt_total_36mo = log10(don_amt_total_36mo + 1);
MPRINT(EM_DIAGRAM):   else LG10_don_amt_total_36mo = .;
MPRINT(EM_DIAGRAM):   end;
31109      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: DATA STEP view saved on file EMWS2.TRANS_VALIDATE.
NOTE: A stored DATA STEP view cannot run under a different operating system.
NOTE: DATA statement used (Total process time):
      real time           0.06 seconds
      cpu time            0.01 seconds
 
 
MPRINT(EM_DIAGRAM):   quit;
31110      quit;
31111      filename emflow;
MPRINT(EM_DIAGRAM):   filename emflow;
NOTE: Fileref EMFLOW has been deassigned.
31112      *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):    *------------------------------------------------------------*;
31113      * Trans: Computing metadata for TRAIN data;
MPRINT(EM_DIAGRAM):   * Trans: Computing metadata for TRAIN data;
31114      *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
 
NOTE: View EMWS2.TRANS_TRAIN.VIEW used (Total process time):
      real time           0.05 seconds
      cpu time            0.04 seconds
 
MPRINT(EM_DIAGRAM):    *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * &nodeid: Computing Metadata for TRAIN data;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   filename _delta "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\CDELTA_TRAIN.sas";
MPRINT(EMADVISECOLUMNS):   proc display c=sashelp.emmeta.advisecolumns.scl;
MPRINT(EMADVISECOLUMNS):   run;
MPRINT(EMADVISECOLUMNS):    options validvarname=any;
MPRINT(EMADVISECOLUMNS):   proc contents data=EMWS2.Trans_TRAIN out=_tempAdvisor noprint;
MPRINT(EMADVISECOLUMNS):   run;
MPRINT(EMADVISECOLUMNS):   options validvarname=V7;
MPRINT(EMADVISECOLUMNS):    data _null_;
MPRINT(EMADVISECOLUMNS):   dsid = open('EMWS2.Trans_TRAIN');
MPRINT(EMADVISECOLUMNS):   call symput('_dsidTable', strip(put(dsid, best.)));
MPRINT(EMADVISECOLUMNS):   if dsid then do;
MPRINT(EMADVISECOLUMNS):   call symput('_engineTable', attrc(dsid, 'ENGINE'));
MPRINT(EMADVISECOLUMNS):   dsid = close(dsid);
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   run;
MPRINT(EMADVISECOLUMNS):    proc contents data=EMWS2.Trans_TRAIN out=WORK.M0NA4W21 noprint;
MPRINT(EMADVISECOLUMNS):   run;
MPRINT(EMADVISECOLUMNS):    data WORK.M0NA4W21;
MPRINT(EMADVISECOLUMNS):   length NAME $ 64 TYPE $ 1 LABEL $ 200 FORMAT $ 36 INFORMAT $36 INDEX $ 1 INDEXTYPE $ 9;
MPRINT(EMADVISECOLUMNS):   label NAME =;
MPRINT(EMADVISECOLUMNS):   set WORK.M0NA4W21(keep=name type length label format formatl formatd informat informl informd idxusage rename=(type=itype));
MPRINT(EMADVISECOLUMNS):   if itype = 1 then type = 'N';
MPRINT(EMADVISECOLUMNS):   else type = 'C';
MPRINT(EMADVISECOLUMNS):   if formatl > 0 then do;
MPRINT(EMADVISECOLUMNS):   if format ne '' then do;
MPRINT(EMADVISECOLUMNS):   if type='N' then format = strip(format)!!strip(put(formatl, best12.))!!'.'!!strip(put(formatd, best12.));
MPRINT(EMADVISECOLUMNS):   else format = strip(format)!!strip(put(formatl, best12.))!!'.';
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   else format = strip(put(formatl, best12.))!!'.'!!strip(put(formatd, best12.));
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   else if format ne '' then format = strip(format)!!'.';
MPRINT(EMADVISECOLUMNS):   if informl > 0 then do;
MPRINT(EMADVISECOLUMNS):   if informat ne ' ' then do;
MPRINT(EMADVISECOLUMNS):   if type='N' then informat = strip(informat)!!strip(put(informl, best12.))!!'.'!!strip(put(informd, best12.));
MPRINT(EMADVISECOLUMNS):   else informat = strip(informat)!!strip(put(informl, best12.))!!'.';
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   else informat = strip(put(informl, best12.))!!'.'!!strip(put(informd, best12.));
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   else if informat ne '' then informat = strip(informat)!!'.';
MPRINT(EMADVISECOLUMNS):   if idxusage = 'NONE' then index ="N";
MPRINT(EMADVISECOLUMNS):   else index = "Y";
MPRINT(EMADVISECOLUMNS):   indextype = idxusage;
MPRINT(EMADVISECOLUMNS):   drop idxusage itype formatl formatd informl informd;
MPRINT(EMADVISECOLUMNS):   run;
MPRINT(EMADVISECOLUMNS):    data WORK.M0NA4W21;
MPRINT(EMADVISECOLUMNS):   length UNAME $64;
MPRINT(EMADVISECOLUMNS):   set WORK.M0NA4W21;
MPRINT(EMADVISECOLUMNS):   UNAME = upcase(NAME);
MPRINT(EMADVISECOLUMNS):   run;
MPRINT(EMADVISECOLUMNS):    proc sort data=WORK.M2HK3M5M NOTHREADS;
MPRINT(EMADVISECOLUMNS):   by UNAME;
MPRINT(EMADVISECOLUMNS):   run;
MPRINT(EMADVISECOLUMNS):    data WORK.M2HK3M5M;
MPRINT(EMADVISECOLUMNS):   drop UNAME;
MPRINT(EMADVISECOLUMNS):   set WORK.M2HK3M5M;
MPRINT(EMADVISECOLUMNS):   run;
MPRINT(EMADVISECOLUMNS):    data WORK.M2GE3N45(keep=NAME ATTR);
MPRINT(EMADVISECOLUMNS):   length ATTR $ 20;
MPRINT(EMADVISECOLUMNS):   set WORK.M2HK3M5M;
MPRINT(EMADVISECOLUMNS):   if level ne "INTERVAL" then do;
MPRINT(EMADVISECOLUMNS):   if order = ' ' then do;
MPRINT(EMADVISECOLUMNS):   attr = 'ORDER';
MPRINT(EMADVISECOLUMNS):   output;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   if format ne ' ' and formattype = ' ' then do;
MPRINT(EMADVISECOLUMNS):   attr = 'FORMATTYPE';
MPRINT(EMADVISECOLUMNS):   output;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   if role = ' ' then do;
MPRINT(EMADVISECOLUMNS):   attr = 'ROLE';
MPRINT(EMADVISECOLUMNS):   output;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   if level = ' ' then do;
MPRINT(EMADVISECOLUMNS):   attr = 'LEVEL';
MPRINT(EMADVISECOLUMNS):   output;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   if type = ' ' then do;
MPRINT(EMADVISECOLUMNS):   attr = 'TYPE';
MPRINT(EMADVISECOLUMNS):   output;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   if index = ' ' then do;
MPRINT(EMADVISECOLUMNS):   attr = 'INDEX';
MPRINT(EMADVISECOLUMNS):   output;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   if report = ' ' then do;
MPRINT(EMADVISECOLUMNS):   attr = 'REPORT';
MPRINT(EMADVISECOLUMNS):   output;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   run;
MPRINT(EMADVISECOLUMNS):   proc sort NOTHREADS;
MPRINT(EMADVISECOLUMNS):   by attr;
MPRINT(EMADVISECOLUMNS):   run;
MPRINT(EMADVISECOLUMNS):    data WORK.M2HK3M5M;
MPRINT(EMADVISECOLUMNS):   length NAME $64 ROLE $ 32 LEVEL $ 10 ORDER $ 8 CREATOR $32 FORMATTYPE $ 10 FAMILY $ 10 LOWERLIMIT 8 UPPERLIMIT 8 REPORT $1 DISTRIBUTION $ 20 COMMENT $64;
MPRINT(EMADVISECOLUMNS):   length levelAssigned 8 roleAssigned 8 PRICE 8;
MPRINT(EMADVISECOLUMNS):   set WORK.M2HK3M5M;
MPRINT(EMADVISECOLUMNS):   if formattype = ' ' then do;
MPRINT(EMADVISECOLUMNS):   if format ne ' ' then do;
MPRINT(EMADVISECOLUMNS):   if type = 'N' then do;
MPRINT(EMADVISECOLUMNS):   pos = indexc(format,'.1234567890');
MPRINT(EMADVISECOLUMNS):   if pos > 1 then tempfmt = substr(format,1, pos-1);
MPRINT(EMADVISECOLUMNS):   else tempfmt = ' ';
MPRINT(EMADVISECOLUMNS):   flen = length(tempfmt);
MPRINT(EMADVISECOLUMNS):   select;
MPRINT(EMADVISECOLUMNS):   when(tempfmt in ("DATE" "DAY" "DDMMYY" "DOWNAME" "JULDAY" "JULIAN" "MMDDYY" "MMDDYYD" "MMDDYYC" "MMDDYYN" "MMDDYYP" "MMDDYYS" "MONNAME" "MONTH" "MONYY" "NENGO" "QTR" "QTRR" "WEEKDATE" "WEEKDATX" "WEEKDAY" "WORDDATE" "WORDDATX"
"YEAR" "YYMMDD" "YYMON" "YYMMDDC" "YYMMDDD" "YYMMDDN" "YYMMDDP" "YYMMDDS" "EURDFDE" "NJDATE" "NLDATE" "EURDFDD" "EURDFDWN" "EURDFMN" "EURDFMY" "EURDFWK" "EURDFWKX" "EURDFWDX" "EURDFDN" "EURDFDE" )) formattype = 'DATE';
MPRINT(EMADVISECOLUMNS):   when(tempfmt in ("DATETIME" "EURDFDT" "TOD" )) formattype = "DATETIME";
MPRINT(EMADVISECOLUMNS):   when(tempfmt in ("HHMM" "HOUR" "MMSS" "TIME" "TIMEAMPM" )) formattype = "TIME";
MPRINT(EMADVISECOLUMNS):   when(tempfmt in ("COMMA" "COMMAX" "DOLLAR" "DOLLARX" "E" "FRACT" "NEGPAREN" "PERCENT")) formattype="QUANTITY";
MPRINT(EMADVISECOLUMNS):   when(tempfmt in ("BINARY" "HEX" "IB" "OCTAL" "PD" "PIB" "PK" "RB" "SSN" "Z" "ZD")) formattype = "CODING";
MPRINT(EMADVISECOLUMNS):   otherwise do;
MPRINT(EMADVISECOLUMNS):   formattype = "USER";
MPRINT(EMADVISECOLUMNS):   if compress(tempfmt, '0123456789.', '') = '' then formattype='NUM';
MPRINT(EMADVISECOLUMNS):   else if substr(tempfmt, 1, 6)='NLDATE' then formattype = "DATE";
MPRINT(EMADVISECOLUMNS):   else if substr(tempfmt, 1, 6)='NLDATM' then formattype = "DATETIME";
MPRINT(EMADVISECOLUMNS):   else if substr(tempfmt, 1, 4)='NLTIM' then formattype = "TIME";
MPRINT(EMADVISECOLUMNS):   else if flen >= 4 then do;
MPRINT(EMADVISECOLUMNS):   str = substr(tempfmt,1,4);
MPRINT(EMADVISECOLUMNS):   if str in ("MMYY" "YYMM" "YYQR") then formattype ="DATE";
MPRINT(EMADVISECOLUMNS):   else if str = "S370" then formattype = "CODING";
MPRINT(EMADVISECOLUMNS):   else if str = "BEST" then formattype = "NUM";
MPRINT(EMADVISECOLUMNS):   drop str;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   else if flen >=3 and substr(tempfmt,1,3) = "YYQ" then formatType = "DATE";
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   drop flen tempfmt pos;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   else do;
MPRINT(EMADVISECOLUMNS):   formatType = "CATEGORY";
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   if formatType = "NUM" then do;
MPRINT(EMADVISECOLUMNS):   if index = "Y" then formatType = "DISCRETE";
MPRINT(EMADVISECOLUMNS):   else formatType = "QUANTITY";
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   if level = ' ' then do;
MPRINT(EMADVISECOLUMNS):   if formatType in ("CATEGORY", "CODING", "ID") or type = "C" then level = "NOMINAL";
MPRINT(EMADVISECOLUMNS):   else level = "INTERVAL";
MPRINT(EMADVISECOLUMNS):   levelAssigned = 1;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   else level = upcase(level);
MPRINT(EMADVISECOLUMNS):   if role = ' ' then do;
MPRINT(EMADVISECOLUMNS):   length name_prefix $8 _uname $64;
MPRINT(EMADVISECOLUMNS):   drop name_prefix _uname _freqflag;
MPRINT(EMADVISECOLUMNS):   retain _freqflag;
MPRINT(EMADVISECOLUMNS):   if LENGTH> 80 then ROLE = 'TEXT';
MPRINT(EMADVISECOLUMNS):   _uname = upcase(NAME);
MPRINT(EMADVISECOLUMNS):   select(_uname);
MPRINT(EMADVISECOLUMNS):   when('_PARTIND_') do;
MPRINT(EMADVISECOLUMNS):   ROLE = 'ID';
MPRINT(EMADVISECOLUMNS):   LEVEL = 'NOMINAL';
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   when('_WARN_') ROLE = 'ASSESS';
MPRINT(EMADVISECOLUMNS):   when('EM_SEGMENT') do;
MPRINT(EMADVISECOLUMNS):   ROLE = 'SEGMENT';
MPRINT(EMADVISECOLUMNS):   LEVEL = 'NOMINAL';
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   when('_NODE_') do;
MPRINT(EMADVISECOLUMNS):   ROLE = 'SEGMENT';
MPRINT(EMADVISECOLUMNS):   LEVEL = 'NOMINAL';
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   when('EM_CLASSTARGET') ROLE = 'ASSESS';
MPRINT(EMADVISECOLUMNS):   when('EM_VALUETARGET') ROLE = 'ASSESS';
MPRINT(EMADVISECOLUMNS):   when('EM_PREDICTION') ROLE = 'PREDICT';
MPRINT(EMADVISECOLUMNS):   when('EM_PROBABILITY') ROLE = 'PREDICT';
MPRINT(EMADVISECOLUMNS):   when('EM_EVENTPROBABILITY') ROLE = 'PREDICT';
MPRINT(EMADVISECOLUMNS):   when('EM_CLASSIFICATION') ROLE = 'CLASSIFICATION';
MPRINT(EMADVISECOLUMNS):   when('EM_DECISION') ROLE = 'DECISION';
MPRINT(EMADVISECOLUMNS):   when('EM_PROFIT') ROLE = 'ASSESS';
MPRINT(EMADVISECOLUMNS):   when('EM_LOSS') ROLE = 'ASSESS';
MPRINT(EMADVISECOLUMNS):   when('EM_ROI') ROLE = 'ASSESS';
MPRINT(EMADVISECOLUMNS):   when('URI') ROLE = 'URL';
MPRINT(EMADVISECOLUMNS):   when('FILTERED') ROLE = 'TEXTLOC';
MPRINT(EMADVISECOLUMNS):   otherwise do;
MPRINT(EMADVISECOLUMNS):   if upcase(NAME) =: 'ZIP' then do;
MPRINT(EMADVISECOLUMNS):   ROLE = 'REJECTED';
MPRINT(EMADVISECOLUMNS):   LEVEL = 'NOMINAL';
MPRINT(EMADVISECOLUMNS):   COMMENT = 'Rejected by: Exceed the maximum class level of %s';
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   else if upcase(NAME) in('FREQ', 'FREQUENCY') then do;
MPRINT(EMADVISECOLUMNS):   ROLE = 'FREQ';
MPRINT(EMADVISECOLUMNS):   if TYPE = 'C' then ROLE = 'INPUT';
MPRINT(EMADVISECOLUMNS):   else if _freqflag =1 then ROLE='REJECTED';
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   else do;
MPRINT(EMADVISECOLUMNS):   name_prefix = scan(_uname, 1, '_');
MPRINT(EMADVISECOLUMNS):   if scan(_uname, 2, '_') = '' then name_prefix='';
MPRINT(EMADVISECOLUMNS):   if name_prefix in('F', 'I', 'U') then do;
MPRINT(EMADVISECOLUMNS):   ROLE = 'CLASSIFICATION';
MPRINT(EMADVISECOLUMNS):   LEVEL = 'NOMINAL';
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   else if name_prefix in('Q') then ROLE = 'ASSESS';
MPRINT(EMADVISECOLUMNS):   else if name_prefix in('P', 'V') then ROLE = 'PREDICT';
MPRINT(EMADVISECOLUMNS):   else if name_prefix in('R', 'RS', 'RT', 'RD', 'RDS', 'RDT', 'RA', 'RAS', 'RAT') then ROLE = 'RESIDUAL';
MPRINT(EMADVISECOLUMNS):   else if name_prefix ='D' then do;
MPRINT(EMADVISECOLUMNS):   ROLE = 'DECISION';
MPRINT(EMADVISECOLUMNS):   LEVEL = 'NOMINAL';
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   else if name_prefix ='B' then do;
MPRINT(EMADVISECOLUMNS):   ROLE = 'SEGMENT';
MPRINT(EMADVISECOLUMNS):   LEVEL = 'NOMINAL';
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   else if name_prefix in('EP', 'BP', 'CP', 'EL', 'CL', 'BL', 'W', 'ROI', 'IC') then ROLE = 'ASSESS';
MPRINT(EMADVISECOLUMNS):   else do;
MPRINT(EMADVISECOLUMNS):   array _ROLE_ (19) $32 _TEMPORARY_ ('ASSESS','CLASSIFICATION','CENSOR', 'COST', 'CROSSID', 'DECISION', 'ID','INPUT', 'LABEL', 'MISSING','PREDICT','REFERRER','REJECTED', 'RESIDUAL','SEGMENT', 'SEQUENCE','TARGET', 'TEXT', 'TIMEID');
MPRINT(EMADVISECOLUMNS):   drop _found_ i;
MPRINT(EMADVISECOLUMNS):   _found_=0;
MPRINT(EMADVISECOLUMNS):   do i=1 to 19 until(_found_=1);
MPRINT(EMADVISECOLUMNS):   if index(_uname, trim(_ROLE_{i}))=1 then do;
MPRINT(EMADVISECOLUMNS):   ROLE=_ROLE_{i};
MPRINT(EMADVISECOLUMNS):   if ROLE = 'ID' then LEVEL = 'NOMINAL';
MPRINT(EMADVISECOLUMNS):   else if ROLE = 'SEGMENT' then LEVEL = 'NOMINAL';
MPRINT(EMADVISECOLUMNS):   else if ROLE = 'TIMEID' and TYPE='N' then LEVEL = 'INTERVAL';
MPRINT(EMADVISECOLUMNS):   _found_=1;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   if length(_uname)>2 then do;
MPRINT(EMADVISECOLUMNS):   if substr(reverse(trim(_uname)), 1, 3) = 'DI_' then do;
MPRINT(EMADVISECOLUMNS):   ROLE = 'ID';
MPRINT(EMADVISECOLUMNS):   LEVEL = 'NOMINAL';
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   if ROLE='FREQ' then _freqflag=1;
MPRINT(EMADVISECOLUMNS):   else if ROLE = 'CLASSIFICATION' then LEVEL = 'NOMINAL';
MPRINT(EMADVISECOLUMNS):   if symexist('RATEMKG_ROLE') then do;
MPRINT(EMADVISECOLUMNS):   if upcase(symget('RATEMKG_ROLE')) in('Y', 'YES') then do;
MPRINT(EMADVISECOLUMNS):   if _uname =: 'POLICY' then ROLE = 'POLICYID';
MPRINT(EMADVISECOLUMNS):   else if _uname in ('PARTITION', '_PARTIND_') then ROLE = 'PARTITION';
MPRINT(EMADVISECOLUMNS):   else if type = 'N' then do;
MPRINT(EMADVISECOLUMNS):   if _uname = 'EXPOSURE' then ROLE = 'EXPOSURE';
MPRINT(EMADVISECOLUMNS):   else if _uname = 'YEAR' then ROLE = 'YEAR';
MPRINT(EMADVISECOLUMNS):   else if _uname = 'WEIGHT' then ROLE = 'WEIGHT';
MPRINT(EMADVISECOLUMNS):   else if _uname = 'OFFSET' then ROLE = 'OFFSET';
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   if role = ' ' then do;
MPRINT(EMADVISECOLUMNS):   if formattype in('DATE', 'DATETIME', 'TIME') then role = 'TIMEID';
MPRINT(EMADVISECOLUMNS):   else role = 'INPUT';
MPRINT(EMADVISECOLUMNS):   roleAssigned = 1;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   else role = upcase(role);
MPRINT(EMADVISECOLUMNS):   if REPORT = '' then REPORT = 'N';
MPRINT(EMADVISECOLUMNS):   if symexist('dmwb_product') then do;
MPRINT(EMADVISECOLUMNS):   if upcase(symget('dmwb_product')) = 'FACTORYMINER_DATASOURCE' then do;
MPRINT(EMADVISECOLUMNS):   if ROLE ^in('INPUT', 'TARGET', 'REJECTED', 'SEGMENT', 'FREQ', 'ID', 'KEY') then ROLE='REJECTED';
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   end;
MPRINT(EMADVISECOLUMNS):   run;
MPRINT(EMADVISECOLUMNS):    data WORK.M2HK3M5M;
MPRINT(EMADVISECOLUMNS):   set WORK.M2HK3M5M;
MPRINT(EMADVISECOLUMNS):   label NAME = "Variable Name" TYPE = "Type" ROLE = "Role" LEVEL= "Measurement Level" ORDER= "Order" CREATOR= "Creator" FORMATTYPE= "Format Type" FAMILY= "Family" DISTRIBUTION= "Distribution" PRICE= "Price" LOWERLIMIT= "Lower
limit" UPPERLIMIT= "Upper Limit" REPORT= "Report" COMMENT= "Comment" INDEX= "Index" INDEXTYPE= "IndexType" LABEL= "Label" LENGTH= "Length";
MPRINT(EMADVISECOLUMNS):   drop levelAssigned roleAssigned;
MPRINT(EMADVISECOLUMNS):   run;
MPRINT(EMADVISECOLUMNS):
MPRINT(EM_DIAGRAM):  ;
MPRINT(EM_DIAGRAM):   proc sort data=WORK.COLUMNMETA;
MPRINT(EM_DIAGRAM):   by NAME;
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * &nodeid: Merge incoming metadata;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   proc contents data=EMWS2.Part_TRAIN noprint out=_temp2(keep=NAME);
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):   proc sort data=_temp2;
MPRINT(EM_DIAGRAM):   by NAME;
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):   proc sort data=EMWS2.Part_CMeta_TRAIN out=_temp;
MPRINT(EM_DIAGRAM):   by NAME;
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):   data EMWS2.Trans_CMeta_TRAIN;
MPRINT(EM_DIAGRAM):   merge WORK.COLUMNMETA(in=_a) _temp2(in=_b) _temp(drop=FORMAT INFORMAT LENGTH INDEX INDEXTYPE in=_c) end=_eof_;
MPRINT(EM_DIAGRAM):   by NAME;
MPRINT(EM_DIAGRAM):   if (^_a and _b) or (^_c and _a and _b) then delete;
MPRINT(EM_DIAGRAM):   if ^_b then CREATOR = "Trans";
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * Trans: Apply Delta Code;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * Computed Code;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   if NAME="LG10_don_amt_total_12mo" then do;
MPRINT(EM_DIAGRAM):   COMMENT = "log10(don_amt_total_12mo  + 1) ";
MPRINT(EM_DIAGRAM):   ROLE ="INPUT";
MPRINT(EM_DIAGRAM):   REPORT ="N";
MPRINT(EM_DIAGRAM):   LEVEL ="INTERVAL";
MPRINT(EM_DIAGRAM):   end;
MPRINT(EM_DIAGRAM):   if NAME="don_amt_total_12mo" then delete;
MPRINT(EM_DIAGRAM):   if NAME="LG10_don_amt_total_24mo" then do;
MPRINT(EM_DIAGRAM):   COMMENT = "log10(don_amt_total_24mo  + 1) ";
MPRINT(EM_DIAGRAM):   ROLE ="INPUT";
MPRINT(EM_DIAGRAM):   REPORT ="N";
MPRINT(EM_DIAGRAM):   LEVEL ="INTERVAL";
MPRINT(EM_DIAGRAM):   end;
MPRINT(EM_DIAGRAM):   if NAME="don_amt_total_24mo" then delete;
MPRINT(EM_DIAGRAM):   if NAME="LG10_don_amt_total_36mo" then do;
MPRINT(EM_DIAGRAM):   COMMENT = "log10(don_amt_total_36mo  + 1) ";
MPRINT(EM_DIAGRAM):   ROLE ="INPUT";
MPRINT(EM_DIAGRAM):   REPORT ="N";
MPRINT(EM_DIAGRAM):   LEVEL ="INTERVAL";
MPRINT(EM_DIAGRAM):   end;
MPRINT(EM_DIAGRAM):   if NAME="don_amt_total_36mo" then delete;
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):   filename _delta;
NOTE: View EMWS2.TRANS_TRAIN.VIEW used (Total process time):
      real time           0.05 seconds
      cpu time            0.03 seconds
 
NOTE: View EMWS2.TRANS_VALIDATE.VIEW used (Total process time):
      real time           0.05 seconds
      cpu time            0.04 seconds
 
MPRINT(EM_DIAGRAM):    proc printto;
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):    data _null_;
MPRINT(EM_DIAGRAM):   call symput('NLDATE', strip(put(date(), NLDATE.)));
MPRINT(EM_DIAGRAM):   call symput('NLTIME', strip(put(datetime(), NLTIME.)));
MPRINT(EM_DIAGRAM):   run;
MPRINT(EM_DIAGRAM):   data _null_;
MPRINT(EM_DIAGRAM):   nldate= sasmsg("sashelp.dmine", "log_date_note", 'N', "February 26, 2025" );
MPRINT(EM_DIAGRAM):   nltime= sasmsg("sashelp.dmine", "log_time_note", 'N', "18:38:53" );
MPRINT(EM_DIAGRAM):   put "*------------------------------------------------------------*";
MPRINT(EM_DIAGRAM):   put "* Report Log";
MPRINT(EM_DIAGRAM):   put nldate;
MPRINT(EM_DIAGRAM):   put nltime;
MPRINT(EM_DIAGRAM):   put "*------------------------------------------------------------*";
MPRINT(EM_DIAGRAM):   run;
*------------------------------------------------------------*
* Report Log
Date:                February 26, 2025
Time:                18:38:53
*------------------------------------------------------------*
MPRINT(EM_DIAGRAM):    filename O0C0RBUR "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMREPORT.out" encoding="UTF-8" NOBOM;
MPRINT(EM_DIAGRAM):   proc printto print=O0C0RBUR new;
MPRINT(EM_DIAGRAM):   run;
18196      *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):    *------------------------------------------------------------*;
18197      * &msgString;
MPRINT(EM_DIAGRAM):   * &msgString;
18198      *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
18199      filename _flowref "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMFLOWSCORE.sas";
MPRINT(EM_DIAGRAM):   filename _flowref "X:\Knight\EM Flows\Member Donor Model - Feb 2025\Workspaces\EMWS2\Trans\EMFLOWSCORE.sas";
18200      proc FCMP NOEXECUTE IMPUTEDDEPS OUTDEPS=WORK.TRANS_SCOREINPUTS;
ERROR: Procedure FCMP not found.
MPRINT(EM_DIAGRAM):   proc FCMP NOEXECUTE IMPUTEDDEPS OUTDEPS=WORK.TRANS_SCOREINPUTS;
18201      %INCLUDE _flowref;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * Computed Code;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * TRANSFORM: don_amt_total_12mo , log10(don_amt_total_12mo +1);
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   label LG10_don_amt_total_12mo = 'Transformed: don_amt_total_12mo';
MPRINT(EM_DIAGRAM):   length LG10_don_amt_total_12mo 8;
MPRINT(EM_DIAGRAM):   if don_amt_total_12mo eq . then LG10_don_amt_total_12mo = .;
MPRINT(EM_DIAGRAM):   else do;
MPRINT(EM_DIAGRAM):   if don_amt_total_12mo +1 > 0 then LG10_don_amt_total_12mo = log10(don_amt_total_12mo +1);
MPRINT(EM_DIAGRAM):   else LG10_don_amt_total_12mo = .;
MPRINT(EM_DIAGRAM):   end;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * TRANSFORM: don_amt_total_24mo , log10(don_amt_total_24mo +1);
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   label LG10_don_amt_total_24mo = 'Transformed: don_amt_total_24mo';
MPRINT(EM_DIAGRAM):   length LG10_don_amt_total_24mo 8;
MPRINT(EM_DIAGRAM):   if don_amt_total_24mo eq . then LG10_don_amt_total_24mo = .;
MPRINT(EM_DIAGRAM):   else do;
MPRINT(EM_DIAGRAM):   if don_amt_total_24mo +1 > 0 then LG10_don_amt_total_24mo = log10(don_amt_total_24mo +1);
MPRINT(EM_DIAGRAM):   else LG10_don_amt_total_24mo = .;
MPRINT(EM_DIAGRAM):   end;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * TRANSFORM: don_amt_total_36mo , log10(don_amt_total_36mo +1);
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   label LG10_don_amt_total_36mo = 'Transformed: don_amt_total_36mo';
MPRINT(EM_DIAGRAM):   length LG10_don_amt_total_36mo 8;
MPRINT(EM_DIAGRAM):   if don_amt_total_36mo eq . then LG10_don_amt_total_36mo = .;
MPRINT(EM_DIAGRAM):   else do;
MPRINT(EM_DIAGRAM):   if don_amt_total_36mo +1 > 0 then LG10_don_amt_total_36mo = log10(don_amt_total_36mo +1);
MPRINT(EM_DIAGRAM):   else LG10_don_amt_total_36mo = .;
MPRINT(EM_DIAGRAM):   end;
18235      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE FCMP used (Total process time):
      real time           0.02 seconds
      cpu time            0.00 seconds
 
MPRINT(EM_DIAGRAM):   quit;
18236      quit;
 
 
18237      data WORK.TRANS_SCOREINPUTS;
MPRINT(EM_DIAGRAM):   data WORK.TRANS_SCOREINPUTS;
18238      set WORK.TRANS_SCOREINPUTS(keep=RHS rename=(RHS=NAME));
MPRINT(EM_DIAGRAM):   set WORK.TRANS_SCOREINPUTS(keep=RHS rename=(RHS=NAME));
ERROR: File WORK.TRANS_SCOREINPUTS.DATA does not exist.
18239      length UNAME $32;
MPRINT(EM_DIAGRAM):   length UNAME $32;
18240      UNAME = upcase(NAME);
MPRINT(EM_DIAGRAM):   UNAME = upcase(NAME);
18241      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column).
      18240:16
NOTE: The SAS System stopped processing this step because of errors.
WARNING: The data set WORK.TRANS_SCOREINPUTS may be incomplete.  When this step was stopped there were 0 observations and 2 variables.
NOTE: DATA statement used (Total process time):
      real time           0.02 seconds
      cpu time            0.00 seconds
 
 
18242      proc sort data=WORK.TRANS_SCOREINPUTS NODUPKEY;
MPRINT(EM_DIAGRAM):   proc sort data=WORK.TRANS_SCOREINPUTS NODUPKEY;
18243      by UNAME;
MPRINT(EM_DIAGRAM):   by UNAME;
18244      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: Input data set is empty.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.TRANS_SCOREINPUTS has 0 observations and 2 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.02 seconds
      cpu time            0.01 seconds
 
 
18245      filename _flowref;
MPRINT(EM_DIAGRAM):   filename _flowref;
NOTE: Fileref _FLOWREF has been deassigned.
18246      %let SYSCC = 0;
18247      *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):    *------------------------------------------------------------*;
18248      * transformcombinevariables;
MPRINT(EM_DIAGRAM):   * transformcombinevariables;
18249      *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
18250      data WORK.TRANS_OUTPUTVARS;
MPRINT(EM_DIAGRAM):   data WORK.TRANS_OUTPUTVARS;
18251      length Uname inputName $32 inputLevel $10 inputType $1 _MetaFlag 8;
MPRINT(EM_DIAGRAM):   length Uname inputName $32 inputLevel $10 inputType $1 _MetaFlag 8;
18252      set
18253      EMWS2.Trans_RESULT
18254      ;
MPRINT(EM_DIAGRAM):   set EMWS2.Trans_RESULT ;
18255      _MetaFlag=0;
MPRINT(EM_DIAGRAM):   _MetaFlag=0;
18256      uname = upcase(name);
MPRINT(EM_DIAGRAM):   uname = upcase(name);
18257      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 3 observations read from the data set EMWS2.TRANS_RESULT.
NOTE: The data set WORK.TRANS_OUTPUTVARS has 3 observations and 13 variables.
NOTE: DATA statement used (Total process time):
      real time           0.02 seconds
      cpu time            0.03 seconds
 
 
18258      data _temp;
MPRINT(EM_DIAGRAM):    data _temp;
18259      length UNAME $32;
MPRINT(EM_DIAGRAM):   length UNAME $32;
18260      set EMWS2.Trans_CMeta_TRAIN(keep=NAME LEVEL ROLE TYPE CREATOR LABEL);
MPRINT(EM_DIAGRAM):   set EMWS2.Trans_CMeta_TRAIN(keep=NAME LEVEL ROLE TYPE CREATOR LABEL);
18261      UNAME = upcase(name);
MPRINT(EM_DIAGRAM):   UNAME = upcase(name);
18262      where upcase(CREATOR) = upcase("Trans");
MPRINT(EM_DIAGRAM):   where upcase(CREATOR) = upcase("Trans");
18263      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 3 observations read from the data set EMWS2.TRANS_CMETA_TRAIN.
      WHERE UPCASE(CREATOR)='TRANS';
NOTE: The data set WORK._TEMP has 3 observations and 7 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.00 seconds
 
 
18264      proc sort data=_temp(drop=CREATOR);
MPRINT(EM_DIAGRAM):   proc sort data=_temp(drop=CREATOR);
18265      by UNAME;
MPRINT(EM_DIAGRAM):   by UNAME;
18266      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 3 observations read from the data set WORK._TEMP.
NOTE: The data set WORK._TEMP has 3 observations and 6 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.04 seconds
      cpu time            0.00 seconds
 
 
18267      proc sort data=WORK.TRANS_OUTPUTVARS;
MPRINT(EM_DIAGRAM):    proc sort data=WORK.TRANS_OUTPUTVARS;
18268      by UNAME;
MPRINT(EM_DIAGRAM):   by UNAME;
18269      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 3 observations read from the data set WORK.TRANS_OUTPUTVARS.
NOTE: The data set WORK.TRANS_OUTPUTVARS has 3 observations and 13 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.03 seconds
      cpu time            0.01 seconds
 
 
18270      data WORK.TRANS_OUTPUTVARS;
MPRINT(EM_DIAGRAM):   data WORK.TRANS_OUTPUTVARS;
18271      merge WORK.TRANS_OUTPUTVARS _temp;
MPRINT(EM_DIAGRAM):   merge WORK.TRANS_OUTPUTVARS _temp;
18272      by UNAME;
MPRINT(EM_DIAGRAM):   by UNAME;
18273      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 3 observations read from the data set WORK.TRANS_OUTPUTVARS.
NOTE: There were 3 observations read from the data set WORK._TEMP.
NOTE: The data set WORK.TRANS_OUTPUTVARS has 3 observations and 13 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.00 seconds
 
 
18274      *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):    *------------------------------------------------------------*;
18275      * Trans: Get Metadata for the Score Inputs Variables;
MPRINT(EM_DIAGRAM):   * Trans: Get Metadata for the Score Inputs Variables;
18276      *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
18277      data _temp;
MPRINT(EM_DIAGRAM):   data _temp;
18278      length UNAME $32;
MPRINT(EM_DIAGRAM):   length UNAME $32;
18279      set EMWS2.Trans_VariableSet(keep=NAME LEVEL TYPE LABEL);
MPRINT(EM_DIAGRAM):   set EMWS2.Trans_VariableSet(keep=NAME LEVEL TYPE LABEL);
18280      UNAME = upcase(name);
MPRINT(EM_DIAGRAM):   UNAME = upcase(name);
18281      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 507 observations read from the data set EMWS2.TRANS_VARIABLESET.
NOTE: The data set WORK._TEMP has 507 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.04 seconds
      cpu time            0.00 seconds
 
 
18282      proc sort data=_temp;
MPRINT(EM_DIAGRAM):   proc sort data=_temp;
18283      by UNAME;
MPRINT(EM_DIAGRAM):   by UNAME;
18284      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: There were 507 observations read from the data set WORK._TEMP.
NOTE: The data set WORK._TEMP has 507 observations and 5 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.03 seconds
      cpu time            0.00 seconds
 
 
18285      data WORK.TRANS_SCOREINPUTS;
MPRINT(EM_DIAGRAM):   data WORK.TRANS_SCOREINPUTS;
18286      merge WORK.TRANS_SCOREINPUTS(in=_a) _temp(in=_b);
MPRINT(EM_DIAGRAM):   merge WORK.TRANS_SCOREINPUTS(in=_a) _temp(in=_b);
ERROR: Variable NAME has been defined as both character and numeric.
18287      by UNAME;
MPRINT(EM_DIAGRAM):   by UNAME;
18288      if _a and _b then output;
MPRINT(EM_DIAGRAM):   if _a and _b then output;
18289      run;
MPRINT(EM_DIAGRAM):   run;
 
NOTE: The SAS System stopped processing this step because of errors.
WARNING: The data set WORK.TRANS_SCOREINPUTS may be incomplete.  When this step was stopped there were 0 observations and 5 variables.
WARNING: Data set WORK.TRANS_SCOREINPUTS was not replaced because this step was stopped.
NOTE: DATA statement used (Total process time):
      real time           0.02 seconds
      cpu time            0.00 seconds
 
 
MPRINT(EM_DIAGRAM):    *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   * Trans: Computing Summary Statistics;
MPRINT(EM_DIAGRAM):   *------------------------------------------------------------*;
MPRINT(EM_DIAGRAM):   proc dmdb data=EMWS2.Trans_TRAIN classout=WORK.TRANS_CLASSSTATS varout=WORK.TRANS_VARSTATS;
*------------------------------------------------------------*
*
* ERROR: Could not open "WORK.METASET05193_T"
* Please report unresolved problems to Technical Support.
*
*------------------------------------------------------------*
ERROR: No variable roles specified.
WARNING: The data set WORK.TRANS_CLASSSTATS may be incomplete.  When this step was stopped there were 0 observations and 0 variables.
WARNING: The data set WORK.TRANS_VARSTATS may be incomplete.  When this step was stopped there were 0 observations and 0 variables.
MPRINT(EM_DIAGRAM):   proc printto;
MPRINT(EM_DIAGRAM):   run;
NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column).
      18240:16
NOTE: The SAS System stopped processing this step because of errors.

 

ballardw
Super User

Note that the first error I find is here

 

18200      proc FCMP NOEXECUTE IMPUTEDDEPS OUTDEPS=WORK.TRANS_SCOREINPUTS;
ERROR: Procedure FCMP not found.

and apparently the next bit about data set doesn't exist is because the output from this step can't exist.

 

I think you may need to get SAS tech support involved as to why your process can't find Proc FCMP.

hackathon24-white-horiz.png

The 2025 SAS Hackathon Kicks Off on June 11!

Watch the live Hackathon Kickoff to get all the essential information about the SAS Hackathon—including how to join, how to participate, and expert tips for success.

YouTube LinkedIn

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
  • 6 replies
  • 2004 views
  • 5 likes
  • 4 in conversation