Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Home
- /
- Programming
- /
- Programming
- /
- ERROR 180-322: Statement is not valid or it is used out of proper orde...

Options

- RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

🔒 This topic is **solved** and **locked**.
Need further help from the community? Please
sign in and ask a **new** question.

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Posted 06-16-2020 05:13 PM
(1019 views)

Hi everyone,

I have an issue with the following, within a loop, within a macro:

```
data &help_zeros_3;
set ∈
where &get;
run;
```

the code runs perfectly, if I run it alone, but within the macro, it throws an error.

Here is the full code:

```
%macro zeros_numVars_by(work_dir, dataset_in, dataset_out, by) / store;
%let in = %sysfunc(catx(.,&work_dir,&dataset_in));
%let out = %sysfunc(catx(.,&work_dir,&dataset_out));
%let group = %sysfunc(tranwrd(&by,%str( ) ,%str(, )));
%let nList = %sysfunc(countw(&by,%str( )));
*%put &group;
/* Free the datasets and macro variables */
PROC DELETE data=&in &out (gennum=all);
RUN;
%let help_sql_zeros= %sysfunc(catx(.,&work_dir,help_sql_zeros));
%let help_zeros_0 = %sysfunc(catx(.,&work_dir,help_zeros_0));
%let help_zeros_1 = %sysfunc(catx(.,&work_dir,help_zeros_1));
%let help_zeros_2 = %sysfunc(catx(.,&work_dir,help_zeros_2));
%let help_zeros_3 = %sysfunc(catx(.,&work_dir,help_zeros_3));
%let help_zeros_4 = %sysfunc(catx(.,&work_dir,help_zeros_4));
%let help_zeros_5 = %sysfunc(catx(.,&work_dir,help_zeros_5));
%let help_zeros_6 = %sysfunc(catx(.,&work_dir,help_zeros_6));
/* Free the intermediary datasets */
PROC DELETE data=&out &help_zeros_0 &help_zeros_1 &help_zeros_2 &help_zeros_3 &help_zeros_4 &help_zeros_5 &help_zeros_6 (gennum=all);
RUN;
/* Treat the case when there is no by condition */
%if &nList=0 %then %do;
%goto noByCondition;
%end;
/* then the case when the by condition is not empty */
%else %do;
/* Get the possible combinations of the by variables, and then the number of combinations */
proc sql;
create table &help_sql_zeros as
select &group,
count(*) as Nobs
from &in
group by &group;
quit;
%let dsid=%sysfunc(open(&help_sql_zeros));
%let nobs=%sysfunc(attrn(&dsid,nobs));
%let dsid=%sysfunc(close(&dsid));
%put nobs= &nobs;
/* Then I go through the number of possible combinations and compute for each of them */
%do i=1 %to &nobs;
/* I treat them 1 by 1 */
data &help_zeros_0;
set &help_sql_zeros (drop=Nobs obs=&i);
run;
/* I need to create the condition for my subset later in the code to get the number of 0s */
proc transpose data=&help_zeros_0 out=&help_zeros_1;
var _all_;
run;
data &help_zeros_2(keep=var);
set &help_zeros_1;
var = catx('=', _NAME_, cats('"',COL1,'"') );
run;
/* Here the condition is completed */
proc sql noprint;
select var INTO: get separated BY ' and '
from &help_zeros_2;
quit;
*%put &get;
/* Here I do my subset */
data &help_zeros_3;
set ∈
where &get;
run;
proc sort data=&help_zeros_3 out=&help_zeros_4;
by &by;
run;
PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5;
by &by;
RUN;
/* I compute the number of 0s for my subset */
DATA &help_zeros_6 (keep = &by _NAME_ _LABEL_ NZEROS i);
set &help_zeros_5;
array list{*} COL: ;
NZEROS=0;
do i=1 to dim(list);
if list{i}=0 then NZEROS=sum(NZEROS,1);
end;
RUN;
/* I append the results for each subset, to have them for the full dataset */
PROC APPEND base=&out data=&help_zeros_6;
RUN;
/* Free the intermediary datasets and macro variable */
PROC DELETE data=&help_zeros_0 &help_zeros_1 &help_zeros_2 &help_zeros_3 &help_zeros_4 &help_zeros_5 &help_zeros_6 (gennum=all);
RUN;
%symdel &get;
%end;
/* When I am finished, I jump to the end */
%goto exit;
%end;
/****************************************************************************************************/
/* Original code without by statement: I end here when the by statement is empty */
%noByCondition:
%let help = %sysfunc(catx(.,&work_dir,HELP));
PROC TRANSPOSE data=&in out=&help;
RUN;
DATA &out (keep = _NAME_ _LABEL_ NZEROS i);
set &help;
array list{*} COL: ;
NZEROS=0;
do i=1 to dim(list);
if list{i}=0 then NZEROS=sum(NZEROS,1);
end;
RUN;
```

/ Free the intermediary dataset */

PROC DELETE data=&help (gennum=all);

RUN;
/****************************************************************************************************/
%exit:
%mend;

The error is coming right away, during the first iteration.

According to the log, it seems it does not like the "set" (see below the full log, set is underlined, first errors highlighted in red):

1 The SAS System 09:31 Wednesday, June 17, 2020 1 ;*';*";*/;quit;run; 2 OPTIONS PAGENO=MIN; 3 %LET _CLIENTTASKLABEL='zeros_numVars_by'; 4 %LET _CLIENTPROJECTPATH='Q:\StrategyTeam\StrategyTeamFolders\Didier\Project_Macros_autocalls.egp'; 5 %LET _CLIENTPROJECTNAME='Project_Macros_autocalls.egp'; 6 %LET _SASPROGRAMFILE=; 7 8 ODS _ALL_ CLOSE; 9 OPTIONS DEV=ACTIVEX; 10 GOPTIONS XPIXELS=0 YPIXELS=0; 11 FILENAME EGSR TEMP; 12 ODS tagsets.sasreport13(ID=EGSR) FILE=EGSR 13 STYLE=HtmlBlue 14 STYLESHEET=(URL="file:///C:/Program%20Files/SASHome/SASEnterpriseGuide/7.1/Styles/HtmlBlue.css") 15 NOGTITLE 16 NOGFOOTNOTE 17 GPATH=&sasworklocation SYMBOLGEN: Macro variable SASWORKLOCATION resolves to "/data/SASWork/dev/SAS_work0D2B00002DA2_rhsascalpd2/SAS_workB60400002DA2_rhsascalpd2/" 18 ENCODING=UTF8 19 options(rolap="on") 20 ; NOTE: Writing TAGSETS.SASREPORT13(EGSR) Body file: EGSR 21 22 GOPTIONS ACCESSIBLE; 23 24 options mprint symbolgen mlogic; 25 %zeros_numVars_by(&work_dir, &dataset_in, &dataset_out, &by); MLOGIC(ZEROS_NUMVARS_BY): Beginning execution. MLOGIC(ZEROS_NUMVARS_BY): Stored compiled macro in libref LIB_WORK compiled 17JUN20:10:06:55 with V9.4. SYMBOLGEN: Macro variable WORK_DIR resolves to LIB_WORK SYMBOLGEN: Macro variable DATASET_IN resolves to BASEX SYMBOLGEN: Macro variable DATASET_OUT resolves to NZEROS_BY SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MLOGIC(ZEROS_NUMVARS_BY): Parameter WORK_DIR has value LIB_WORK MLOGIC(ZEROS_NUMVARS_BY): Parameter DATASET_IN has value BASEX MLOGIC(ZEROS_NUMVARS_BY): Parameter DATASET_OUT has value NZEROS_BY MLOGIC(ZEROS_NUMVARS_BY): Parameter BY has value APPLICATION_TYPE PRODUCT_TYPE MLOGIC(ZEROS_NUMVARS_BY): %LET (variable name is IN) SYMBOLGEN: Macro variable WORK_DIR resolves to LIB_WORK SYMBOLGEN: Macro variable DATASET_IN resolves to BASEX MLOGIC(ZEROS_NUMVARS_BY): %LET (variable name is OUT) SYMBOLGEN: Macro variable WORK_DIR resolves to LIB_WORK SYMBOLGEN: Macro variable DATASET_OUT resolves to NZEROS_BY MLOGIC(ZEROS_NUMVARS_BY): %LET (variable name is GROUP) SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MLOGIC(ZEROS_NUMVARS_BY): %LET (variable name is NLIST) SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MLOGIC(ZEROS_NUMVARS_BY): %PUT &group SYMBOLGEN: Macro variable GROUP resolves to APPLICATION_TYPE, PRODUCT_TYPE APPLICATION_TYPE, PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): * PROC DELETE data=&in &out (gennum=all); MPRINT(ZEROS_NUMVARS_BY): RUN; MLOGIC(ZEROS_NUMVARS_BY): %LET (variable name is HELP_SQL_ZEROS) SYMBOLGEN: Macro variable WORK_DIR resolves to LIB_WORK MLOGIC(ZEROS_NUMVARS_BY): %LET (variable name is HELP_ZEROS_0) SYMBOLGEN: Macro variable WORK_DIR resolves to LIB_WORK MLOGIC(ZEROS_NUMVARS_BY): %LET (variable name is HELP_ZEROS_1) 2 The SAS System 09:31 Wednesday, June 17, 2020 SYMBOLGEN: Macro variable WORK_DIR resolves to LIB_WORK MLOGIC(ZEROS_NUMVARS_BY): %LET (variable name is HELP_ZEROS_2) SYMBOLGEN: Macro variable WORK_DIR resolves to LIB_WORK MLOGIC(ZEROS_NUMVARS_BY): %LET (variable name is HELP_ZEROS_3) SYMBOLGEN: Macro variable WORK_DIR resolves to LIB_WORK MLOGIC(ZEROS_NUMVARS_BY): %LET (variable name is HELP_ZEROS_4) SYMBOLGEN: Macro variable WORK_DIR resolves to LIB_WORK MLOGIC(ZEROS_NUMVARS_BY): %LET (variable name is HELP_ZEROS_5) SYMBOLGEN: Macro variable WORK_DIR resolves to LIB_WORK MLOGIC(ZEROS_NUMVARS_BY): %LET (variable name is HELP_ZEROS_6) SYMBOLGEN: Macro variable WORK_DIR resolves to LIB_WORK SYMBOLGEN: Macro variable OUT resolves to LIB_WORK.NZEROS_BY SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC DELETE data=LIB_WORK.NZEROS_BY LIB_WORK.help_zeros_0 LIB_WORK.help_zeros_1 LIB_WORK.help_zeros_2 LIB_WORK.help_zeros_3 LIB_WORK.help_zeros_4 LIB_WORK.help_zeros_5 LIB_WORK.help_zeros_6 (gennum=all); MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Deleting LIB_WORK.NZEROS_BY (memtype=DATA). WARNING: File LIB_WORK.HELP_ZEROS_0.DATA does not exist. WARNING: File LIB_WORK.HELP_ZEROS_1.DATA does not exist. WARNING: File LIB_WORK.HELP_ZEROS_2.DATA does not exist. WARNING: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. WARNING: File LIB_WORK.HELP_ZEROS_4.DATA does not exist. WARNING: File LIB_WORK.HELP_ZEROS_5.DATA does not exist. WARNING: File LIB_WORK.HELP_ZEROS_6.DATA does not exist. NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable NLIST resolves to 2 MLOGIC(ZEROS_NUMVARS_BY): %IF condition &nList=0 is FALSE MPRINT(ZEROS_NUMVARS_BY): proc sql; SYMBOLGEN: Macro variable HELP_SQL_ZEROS resolves to LIB_WORK.help_sql_zeros SYMBOLGEN: Macro variable GROUP resolves to APPLICATION_TYPE, PRODUCT_TYPE SYMBOLGEN: Macro variable IN resolves to LIB_WORK.BASEX SYMBOLGEN: Macro variable GROUP resolves to APPLICATION_TYPE, PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): create table LIB_WORK.help_sql_zeros as select APPLICATION_TYPE, PRODUCT_TYPE, count(*) as Nobs from LIB_WORK.BASEX group by APPLICATION_TYPE, PRODUCT_TYPE; NOTE: Compressing data set LIB_WORK.HELP_SQL_ZEROS increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: Table LIB_WORK.HELP_SQL_ZEROS created, with 9 rows and 3 columns. MPRINT(ZEROS_NUMVARS_BY): quit; NOTE: PROCEDURE SQL used (Total process time): real time 0.23 seconds cpu time 0.22 seconds MLOGIC(ZEROS_NUMVARS_BY): %LET (variable name is DSID) SYMBOLGEN: Macro variable HELP_SQL_ZEROS resolves to LIB_WORK.help_sql_zeros MLOGIC(ZEROS_NUMVARS_BY): %LET (variable name is NOBS) 3 The SAS System 09:31 Wednesday, June 17, 2020 SYMBOLGEN: Macro variable DSID resolves to 1 MLOGIC(ZEROS_NUMVARS_BY): %LET (variable name is DSID) SYMBOLGEN: Macro variable DSID resolves to 1 MLOGIC(ZEROS_NUMVARS_BY): %PUT nobs= &nobs SYMBOLGEN: Macro variable NOBS resolves to 9 nobs= 9 SYMBOLGEN: Macro variable NOBS resolves to 9 MLOGIC(ZEROS_NUMVARS_BY): %DO loop beginning; index variable I; start value is 1; stop value is 9; by value is 1. SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_0; SYMBOLGEN: Macro variable HELP_SQL_ZEROS resolves to LIB_WORK.help_sql_zeros SYMBOLGEN: Macro variable I resolves to 1 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_sql_zeros (drop=Nobs obs=1); MPRINT(ZEROS_NUMVARS_BY): run; NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_0 because compression overhead would increase the size of the data set. NOTE: There were 1 observations read from the data set LIB_WORK.HELP_SQL_ZEROS. NOTE: The data set LIB_WORK.HELP_ZEROS_0 has 1 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): proc transpose data=LIB_WORK.help_zeros_0 out=LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var _all_; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 1 observations read from the data set LIB_WORK.HELP_ZEROS_0. NOTE: The data set LIB_WORK.HELP_ZEROS_1 has 2 observations and 3 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_1 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_2(keep=var); SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var = catx('=', _NAME_, cats('"',COL1,'"') ); MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 2 observations read from the data set LIB_WORK.HELP_ZEROS_1. NOTE: The data set LIB_WORK.HELP_ZEROS_2 has 2 observations and 1 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_2 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds MPRINT(ZEROS_NUMVARS_BY): proc sql noprint; SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): select var INTO: get separated BY ' and ' from LIB_WORK.help_zeros_2; 4 The SAS System 09:31 Wednesday, June 17, 2020 MPRINT(ZEROS_NUMVARS_BY): quit; NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.02 seconds MLOGIC(ZEROS_NUMVARS_BY): %PUT &get SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" MPRINT(ZEROS_NUMVARS_BY): * data &help_zeros_3; SYMBOLGEN: Macro variable IN resolves to LIB_WORK.BASEX NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; ___ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.BASEX; SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; _____ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): where APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE"; MPRINT(ZEROS_NUMVARS_BY): run; SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 ERROR: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 MPRINT(ZEROS_NUMVARS_BY): proc sort data=LIB_WORK.help_zeros_3 out=LIB_WORK.help_zeros_4; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_4 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_4 because compression overhead would increase the size of the data set. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 MPRINT(ZEROS_NUMVARS_BY): PROC TRANSPOSE data=LIB_WORK.help_zeros_4 out=LIB_WORK.help_zeros_5; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE ERROR: Variable APPLICATION_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; ERROR: Variable PRODUCT_TYPE not found. 5 The SAS System 09:31 Wednesday, June 17, 2020 MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_5 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_5 because compression overhead would increase the size of the data set. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): DATA LIB_WORK.help_zeros_6 (keep = APPLICATION_TYPE PRODUCT_TYPE _NAME_ _LABEL_ NZEROS i); SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_5; MPRINT(ZEROS_NUMVARS_BY): array list{*} COL: ; WARNING: Defining an array with zero elements. MPRINT(ZEROS_NUMVARS_BY): NZEROS=0; MPRINT(ZEROS_NUMVARS_BY): do i=1 to dim(list); MPRINT(ZEROS_NUMVARS_BY): if list{i}=0 then NZEROS=sum(NZEROS,1); MPRINT(ZEROS_NUMVARS_BY): end; MPRINT(ZEROS_NUMVARS_BY): RUN; WARNING: The variable APPLICATION_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable PRODUCT_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _NAME_ in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _LABEL_ in the DROP, KEEP, or RENAME list has never been referenced. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_6 because compression overhead would increase the size of the data set. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_5. NOTE: The data set LIB_WORK.HELP_ZEROS_6 has 0 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable OUT resolves to LIB_WORK.NZEROS_BY SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC APPEND base=LIB_WORK.NZEROS_BY data=LIB_WORK.help_zeros_6; MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Appending LIB_WORK.HELP_ZEROS_6 to LIB_WORK.NZEROS_BY. NOTE: BASE data set does not exist. DATA file is being copied to BASE file. NOTE: Compression was disabled for data set LIB_WORK.NZEROS_BY because compression overhead would increase the size of the data set. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_6. NOTE: The data set LIB_WORK.NZEROS_BY has 0 observations and 2 variables. NOTE: PROCEDURE APPEND used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 6 The SAS System 09:31 Wednesday, June 17, 2020 SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC DELETE data=LIB_WORK.help_zeros_0 LIB_WORK.help_zeros_1 LIB_WORK.help_zeros_2 LIB_WORK.help_zeros_3 LIB_WORK.help_zeros_4 LIB_WORK.help_zeros_5 LIB_WORK.help_zeros_6 (gennum=all); MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Deleting LIB_WORK.HELP_ZEROS_0 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_1 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_2 (memtype=DATA). WARNING: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. NOTE: Deleting LIB_WORK.HELP_ZEROS_4 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_5 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_6 (memtype=DATA gennum=ALL). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.01 seconds MLOGIC(ZEROS_NUMVARS_BY): %SYMDEL &GET SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" WARNING: Attempt to delete macro variable APPLICATION_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "PERSONAL" must start with a letter or underscore. WARNING: Attempt to delete macro variable AND failed. Variable not found. WARNING: Attempt to delete macro variable PRODUCT_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "ASSET FINANCE" must start with a letter or underscore. MLOGIC(ZEROS_NUMVARS_BY): %DO loop index variable I is now 2; loop will iterate again. SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_0; SYMBOLGEN: Macro variable HELP_SQL_ZEROS resolves to LIB_WORK.help_sql_zeros SYMBOLGEN: Macro variable I resolves to 2 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_sql_zeros (drop=Nobs obs=2); MPRINT(ZEROS_NUMVARS_BY): run; NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_0 because compression overhead would increase the size of the data set. NOTE: There were 2 observations read from the data set LIB_WORK.HELP_SQL_ZEROS. NOTE: The data set LIB_WORK.HELP_ZEROS_0 has 2 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): proc transpose data=LIB_WORK.help_zeros_0 out=LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var _all_; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 2 observations read from the data set LIB_WORK.HELP_ZEROS_0. NOTE: The data set LIB_WORK.HELP_ZEROS_1 has 2 observations and 4 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_1 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.01 seconds 7 The SAS System 09:31 Wednesday, June 17, 2020 SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_2(keep=var); SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var = catx('=', _NAME_, cats('"',COL1,'"') ); MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 2 observations read from the data set LIB_WORK.HELP_ZEROS_1. NOTE: The data set LIB_WORK.HELP_ZEROS_2 has 2 observations and 1 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_2 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds MPRINT(ZEROS_NUMVARS_BY): proc sql noprint; SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): select var INTO: get separated BY ' and ' from LIB_WORK.help_zeros_2; MPRINT(ZEROS_NUMVARS_BY): quit; NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.01 seconds MLOGIC(ZEROS_NUMVARS_BY): %PUT &get SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" MPRINT(ZEROS_NUMVARS_BY): * data &help_zeros_3; SYMBOLGEN: Macro variable IN resolves to LIB_WORK.BASEX NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; ___ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.BASEX; SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; _____ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): where APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE"; MPRINT(ZEROS_NUMVARS_BY): run; SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 ERROR: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 MPRINT(ZEROS_NUMVARS_BY): proc sort data=LIB_WORK.help_zeros_3 out=LIB_WORK.help_zeros_4; 8 The SAS System 09:31 Wednesday, June 17, 2020 SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_4 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_4 because compression overhead would increase the size of the data set. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 MPRINT(ZEROS_NUMVARS_BY): PROC TRANSPOSE data=LIB_WORK.help_zeros_4 out=LIB_WORK.help_zeros_5; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE ERROR: Variable APPLICATION_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; ERROR: Variable PRODUCT_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_5 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_5 because compression overhead would increase the size of the data set. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): DATA LIB_WORK.help_zeros_6 (keep = APPLICATION_TYPE PRODUCT_TYPE _NAME_ _LABEL_ NZEROS i); SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_5; MPRINT(ZEROS_NUMVARS_BY): array list{*} COL: ; WARNING: Defining an array with zero elements. MPRINT(ZEROS_NUMVARS_BY): NZEROS=0; MPRINT(ZEROS_NUMVARS_BY): do i=1 to dim(list); MPRINT(ZEROS_NUMVARS_BY): if list{i}=0 then NZEROS=sum(NZEROS,1); MPRINT(ZEROS_NUMVARS_BY): end; MPRINT(ZEROS_NUMVARS_BY): RUN; WARNING: The variable APPLICATION_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable PRODUCT_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _NAME_ in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _LABEL_ in the DROP, KEEP, or RENAME list has never been referenced. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_6 because compression overhead would increase the size of the data set. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_5. NOTE: The data set LIB_WORK.HELP_ZEROS_6 has 0 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds 9 The SAS System 09:31 Wednesday, June 17, 2020 SYMBOLGEN: Macro variable OUT resolves to LIB_WORK.NZEROS_BY SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC APPEND base=LIB_WORK.NZEROS_BY data=LIB_WORK.help_zeros_6; MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Appending LIB_WORK.HELP_ZEROS_6 to LIB_WORK.NZEROS_BY. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_6. NOTE: 0 observations added. NOTE: The data set LIB_WORK.NZEROS_BY has 0 observations and 2 variables. NOTE: PROCEDURE APPEND used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC DELETE data=LIB_WORK.help_zeros_0 LIB_WORK.help_zeros_1 LIB_WORK.help_zeros_2 LIB_WORK.help_zeros_3 LIB_WORK.help_zeros_4 LIB_WORK.help_zeros_5 LIB_WORK.help_zeros_6 (gennum=all); MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Deleting LIB_WORK.HELP_ZEROS_0 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_1 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_2 (memtype=DATA). WARNING: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. NOTE: Deleting LIB_WORK.HELP_ZEROS_4 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_5 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_6 (memtype=DATA gennum=ALL). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.01 seconds MLOGIC(ZEROS_NUMVARS_BY): %SYMDEL &GET SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" WARNING: Attempt to delete macro variable APPLICATION_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "PERSONAL" must start with a letter or underscore. WARNING: Attempt to delete macro variable AND failed. Variable not found. WARNING: Attempt to delete macro variable PRODUCT_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "ASSET FINANCE" must start with a letter or underscore. MLOGIC(ZEROS_NUMVARS_BY): %DO loop index variable I is now 3; loop will iterate again. SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_0; SYMBOLGEN: Macro variable HELP_SQL_ZEROS resolves to LIB_WORK.help_sql_zeros SYMBOLGEN: Macro variable I resolves to 3 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_sql_zeros (drop=Nobs obs=3); MPRINT(ZEROS_NUMVARS_BY): run; NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_0 because compression overhead would increase the size of the data set. 10 The SAS System 09:31 Wednesday, June 17, 2020 NOTE: There were 3 observations read from the data set LIB_WORK.HELP_SQL_ZEROS. NOTE: The data set LIB_WORK.HELP_ZEROS_0 has 3 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): proc transpose data=LIB_WORK.help_zeros_0 out=LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var _all_; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 3 observations read from the data set LIB_WORK.HELP_ZEROS_0. NOTE: The data set LIB_WORK.HELP_ZEROS_1 has 2 observations and 5 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_1 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_2(keep=var); SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var = catx('=', _NAME_, cats('"',COL1,'"') ); MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 2 observations read from the data set LIB_WORK.HELP_ZEROS_1. NOTE: The data set LIB_WORK.HELP_ZEROS_2 has 2 observations and 1 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_2 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds MPRINT(ZEROS_NUMVARS_BY): proc sql noprint; SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): select var INTO: get separated BY ' and ' from LIB_WORK.help_zeros_2; MPRINT(ZEROS_NUMVARS_BY): quit; NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.01 seconds MLOGIC(ZEROS_NUMVARS_BY): %PUT &get SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" MPRINT(ZEROS_NUMVARS_BY): * data &help_zeros_3; SYMBOLGEN: Macro variable IN resolves to LIB_WORK.BASEX NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; ___ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = 11 The SAS System 09:31 Wednesday, June 17, 2020 ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.BASEX; SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; _____ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): where APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE"; MPRINT(ZEROS_NUMVARS_BY): run; SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 ERROR: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 MPRINT(ZEROS_NUMVARS_BY): proc sort data=LIB_WORK.help_zeros_3 out=LIB_WORK.help_zeros_4; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_4 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_4 because compression overhead would increase the size of the data set. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 MPRINT(ZEROS_NUMVARS_BY): PROC TRANSPOSE data=LIB_WORK.help_zeros_4 out=LIB_WORK.help_zeros_5; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE ERROR: Variable APPLICATION_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; ERROR: Variable PRODUCT_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_5 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_5 because compression overhead would increase the size of the data set. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): DATA LIB_WORK.help_zeros_6 (keep = APPLICATION_TYPE PRODUCT_TYPE _NAME_ _LABEL_ NZEROS i); SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 12 The SAS System 09:31 Wednesday, June 17, 2020 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_5; MPRINT(ZEROS_NUMVARS_BY): array list{*} COL: ; WARNING: Defining an array with zero elements. MPRINT(ZEROS_NUMVARS_BY): NZEROS=0; MPRINT(ZEROS_NUMVARS_BY): do i=1 to dim(list); MPRINT(ZEROS_NUMVARS_BY): if list{i}=0 then NZEROS=sum(NZEROS,1); MPRINT(ZEROS_NUMVARS_BY): end; MPRINT(ZEROS_NUMVARS_BY): RUN; WARNING: The variable APPLICATION_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable PRODUCT_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _NAME_ in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _LABEL_ in the DROP, KEEP, or RENAME list has never been referenced. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_6 because compression overhead would increase the size of the data set. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_5. NOTE: The data set LIB_WORK.HELP_ZEROS_6 has 0 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable OUT resolves to LIB_WORK.NZEROS_BY SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC APPEND base=LIB_WORK.NZEROS_BY data=LIB_WORK.help_zeros_6; MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Appending LIB_WORK.HELP_ZEROS_6 to LIB_WORK.NZEROS_BY. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_6. NOTE: 0 observations added. NOTE: The data set LIB_WORK.NZEROS_BY has 0 observations and 2 variables. NOTE: PROCEDURE APPEND used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC DELETE data=LIB_WORK.help_zeros_0 LIB_WORK.help_zeros_1 LIB_WORK.help_zeros_2 LIB_WORK.help_zeros_3 LIB_WORK.help_zeros_4 LIB_WORK.help_zeros_5 LIB_WORK.help_zeros_6 (gennum=all); MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Deleting LIB_WORK.HELP_ZEROS_0 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_1 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_2 (memtype=DATA). WARNING: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. NOTE: Deleting LIB_WORK.HELP_ZEROS_4 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_5 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_6 (memtype=DATA gennum=ALL). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds 13 The SAS System 09:31 Wednesday, June 17, 2020 MLOGIC(ZEROS_NUMVARS_BY): %SYMDEL &GET SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" WARNING: Attempt to delete macro variable APPLICATION_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "PERSONAL" must start with a letter or underscore. WARNING: Attempt to delete macro variable AND failed. Variable not found. WARNING: Attempt to delete macro variable PRODUCT_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "ASSET FINANCE" must start with a letter or underscore. MLOGIC(ZEROS_NUMVARS_BY): %DO loop index variable I is now 4; loop will iterate again. SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_0; SYMBOLGEN: Macro variable HELP_SQL_ZEROS resolves to LIB_WORK.help_sql_zeros SYMBOLGEN: Macro variable I resolves to 4 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_sql_zeros (drop=Nobs obs=4); MPRINT(ZEROS_NUMVARS_BY): run; NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_0 because compression overhead would increase the size of the data set. NOTE: There were 4 observations read from the data set LIB_WORK.HELP_SQL_ZEROS. NOTE: The data set LIB_WORK.HELP_ZEROS_0 has 4 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): proc transpose data=LIB_WORK.help_zeros_0 out=LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var _all_; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 4 observations read from the data set LIB_WORK.HELP_ZEROS_0. NOTE: The data set LIB_WORK.HELP_ZEROS_1 has 2 observations and 6 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_1 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_2(keep=var); SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var = catx('=', _NAME_, cats('"',COL1,'"') ); MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 2 observations read from the data set LIB_WORK.HELP_ZEROS_1. NOTE: The data set LIB_WORK.HELP_ZEROS_2 has 2 observations and 1 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_2 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds 14 The SAS System 09:31 Wednesday, June 17, 2020 MPRINT(ZEROS_NUMVARS_BY): proc sql noprint; SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): select var INTO: get separated BY ' and ' from LIB_WORK.help_zeros_2; MPRINT(ZEROS_NUMVARS_BY): quit; NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.00 seconds MLOGIC(ZEROS_NUMVARS_BY): %PUT &get SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" MPRINT(ZEROS_NUMVARS_BY): * data &help_zeros_3; SYMBOLGEN: Macro variable IN resolves to LIB_WORK.BASEX NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; ___ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.BASEX; SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; _____ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): where APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE"; MPRINT(ZEROS_NUMVARS_BY): run; SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 ERROR: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 MPRINT(ZEROS_NUMVARS_BY): proc sort data=LIB_WORK.help_zeros_3 out=LIB_WORK.help_zeros_4; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_4 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_4 because compression overhead would increase the size of the data set. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 MPRINT(ZEROS_NUMVARS_BY): PROC TRANSPOSE data=LIB_WORK.help_zeros_4 out=LIB_WORK.help_zeros_5; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE 15 The SAS System 09:31 Wednesday, June 17, 2020 ERROR: Variable APPLICATION_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; ERROR: Variable PRODUCT_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_5 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_5 because compression overhead would increase the size of the data set. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): DATA LIB_WORK.help_zeros_6 (keep = APPLICATION_TYPE PRODUCT_TYPE _NAME_ _LABEL_ NZEROS i); SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_5; MPRINT(ZEROS_NUMVARS_BY): array list{*} COL: ; WARNING: Defining an array with zero elements. MPRINT(ZEROS_NUMVARS_BY): NZEROS=0; MPRINT(ZEROS_NUMVARS_BY): do i=1 to dim(list); MPRINT(ZEROS_NUMVARS_BY): if list{i}=0 then NZEROS=sum(NZEROS,1); MPRINT(ZEROS_NUMVARS_BY): end; MPRINT(ZEROS_NUMVARS_BY): RUN; WARNING: The variable APPLICATION_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable PRODUCT_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _NAME_ in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _LABEL_ in the DROP, KEEP, or RENAME list has never been referenced. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_6 because compression overhead would increase the size of the data set. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_5. NOTE: The data set LIB_WORK.HELP_ZEROS_6 has 0 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable OUT resolves to LIB_WORK.NZEROS_BY SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC APPEND base=LIB_WORK.NZEROS_BY data=LIB_WORK.help_zeros_6; MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Appending LIB_WORK.HELP_ZEROS_6 to LIB_WORK.NZEROS_BY. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_6. NOTE: 0 observations added. NOTE: The data set LIB_WORK.NZEROS_BY has 0 observations and 2 variables. NOTE: PROCEDURE APPEND used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 16 The SAS System 09:31 Wednesday, June 17, 2020 SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC DELETE data=LIB_WORK.help_zeros_0 LIB_WORK.help_zeros_1 LIB_WORK.help_zeros_2 LIB_WORK.help_zeros_3 LIB_WORK.help_zeros_4 LIB_WORK.help_zeros_5 LIB_WORK.help_zeros_6 (gennum=all); MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Deleting LIB_WORK.HELP_ZEROS_0 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_1 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_2 (memtype=DATA). WARNING: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. NOTE: Deleting LIB_WORK.HELP_ZEROS_4 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_5 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_6 (memtype=DATA gennum=ALL). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.02 seconds MLOGIC(ZEROS_NUMVARS_BY): %SYMDEL &GET SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" WARNING: Attempt to delete macro variable APPLICATION_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "PERSONAL" must start with a letter or underscore. WARNING: Attempt to delete macro variable AND failed. Variable not found. WARNING: Attempt to delete macro variable PRODUCT_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "ASSET FINANCE" must start with a letter or underscore. MLOGIC(ZEROS_NUMVARS_BY): %DO loop index variable I is now 5; loop will iterate again. SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_0; SYMBOLGEN: Macro variable HELP_SQL_ZEROS resolves to LIB_WORK.help_sql_zeros SYMBOLGEN: Macro variable I resolves to 5 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_sql_zeros (drop=Nobs obs=5); MPRINT(ZEROS_NUMVARS_BY): run; NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_0 because compression overhead would increase the size of the data set. NOTE: There were 5 observations read from the data set LIB_WORK.HELP_SQL_ZEROS. NOTE: The data set LIB_WORK.HELP_ZEROS_0 has 5 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): proc transpose data=LIB_WORK.help_zeros_0 out=LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var _all_; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 5 observations read from the data set LIB_WORK.HELP_ZEROS_0. NOTE: The data set LIB_WORK.HELP_ZEROS_1 has 2 observations and 7 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_1 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: PROCEDURE TRANSPOSE used (Total process time): 17 The SAS System 09:31 Wednesday, June 17, 2020 real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_2(keep=var); SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var = catx('=', _NAME_, cats('"',COL1,'"') ); MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 2 observations read from the data set LIB_WORK.HELP_ZEROS_1. NOTE: The data set LIB_WORK.HELP_ZEROS_2 has 2 observations and 1 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_2 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds MPRINT(ZEROS_NUMVARS_BY): proc sql noprint; SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): select var INTO: get separated BY ' and ' from LIB_WORK.help_zeros_2; MPRINT(ZEROS_NUMVARS_BY): quit; NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.00 seconds MLOGIC(ZEROS_NUMVARS_BY): %PUT &get SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" MPRINT(ZEROS_NUMVARS_BY): * data &help_zeros_3; SYMBOLGEN: Macro variable IN resolves to LIB_WORK.BASEX NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; ___ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.BASEX; SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; _____ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): where APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE"; MPRINT(ZEROS_NUMVARS_BY): run; SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 ERROR: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. 18 The SAS System 09:31 Wednesday, June 17, 2020 SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 MPRINT(ZEROS_NUMVARS_BY): proc sort data=LIB_WORK.help_zeros_3 out=LIB_WORK.help_zeros_4; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_4 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_4 because compression overhead would increase the size of the data set. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 MPRINT(ZEROS_NUMVARS_BY): PROC TRANSPOSE data=LIB_WORK.help_zeros_4 out=LIB_WORK.help_zeros_5; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE ERROR: Variable APPLICATION_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; ERROR: Variable PRODUCT_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_5 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_5 because compression overhead would increase the size of the data set. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): DATA LIB_WORK.help_zeros_6 (keep = APPLICATION_TYPE PRODUCT_TYPE _NAME_ _LABEL_ NZEROS i); SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_5; MPRINT(ZEROS_NUMVARS_BY): array list{*} COL: ; WARNING: Defining an array with zero elements. MPRINT(ZEROS_NUMVARS_BY): NZEROS=0; MPRINT(ZEROS_NUMVARS_BY): do i=1 to dim(list); MPRINT(ZEROS_NUMVARS_BY): if list{i}=0 then NZEROS=sum(NZEROS,1); MPRINT(ZEROS_NUMVARS_BY): end; MPRINT(ZEROS_NUMVARS_BY): RUN; WARNING: The variable APPLICATION_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable PRODUCT_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _NAME_ in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _LABEL_ in the DROP, KEEP, or RENAME list has never been referenced. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_6 because compression overhead would increase the size of the data set. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_5. NOTE: The data set LIB_WORK.HELP_ZEROS_6 has 0 observations and 2 variables. NOTE: DATA statement used (Total process time): 19 The SAS System 09:31 Wednesday, June 17, 2020 real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable OUT resolves to LIB_WORK.NZEROS_BY SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC APPEND base=LIB_WORK.NZEROS_BY data=LIB_WORK.help_zeros_6; MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Appending LIB_WORK.HELP_ZEROS_6 to LIB_WORK.NZEROS_BY. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_6. NOTE: 0 observations added. NOTE: The data set LIB_WORK.NZEROS_BY has 0 observations and 2 variables. NOTE: PROCEDURE APPEND used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC DELETE data=LIB_WORK.help_zeros_0 LIB_WORK.help_zeros_1 LIB_WORK.help_zeros_2 LIB_WORK.help_zeros_3 LIB_WORK.help_zeros_4 LIB_WORK.help_zeros_5 LIB_WORK.help_zeros_6 (gennum=all); MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Deleting LIB_WORK.HELP_ZEROS_0 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_1 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_2 (memtype=DATA). WARNING: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. NOTE: Deleting LIB_WORK.HELP_ZEROS_4 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_5 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_6 (memtype=DATA gennum=ALL). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds MLOGIC(ZEROS_NUMVARS_BY): %SYMDEL &GET SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" WARNING: Attempt to delete macro variable APPLICATION_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "PERSONAL" must start with a letter or underscore. WARNING: Attempt to delete macro variable AND failed. Variable not found. WARNING: Attempt to delete macro variable PRODUCT_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "ASSET FINANCE" must start with a letter or underscore. MLOGIC(ZEROS_NUMVARS_BY): %DO loop index variable I is now 6; loop will iterate again. SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_0; SYMBOLGEN: Macro variable HELP_SQL_ZEROS resolves to LIB_WORK.help_sql_zeros SYMBOLGEN: Macro variable I resolves to 6 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_sql_zeros (drop=Nobs obs=6); MPRINT(ZEROS_NUMVARS_BY): run; 20 The SAS System 09:31 Wednesday, June 17, 2020 NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_0 because compression overhead would increase the size of the data set. NOTE: There were 6 observations read from the data set LIB_WORK.HELP_SQL_ZEROS. NOTE: The data set LIB_WORK.HELP_ZEROS_0 has 6 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): proc transpose data=LIB_WORK.help_zeros_0 out=LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var _all_; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 6 observations read from the data set LIB_WORK.HELP_ZEROS_0. NOTE: The data set LIB_WORK.HELP_ZEROS_1 has 2 observations and 8 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_1 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_2(keep=var); SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var = catx('=', _NAME_, cats('"',COL1,'"') ); MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 2 observations read from the data set LIB_WORK.HELP_ZEROS_1. NOTE: The data set LIB_WORK.HELP_ZEROS_2 has 2 observations and 1 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_2 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds MPRINT(ZEROS_NUMVARS_BY): proc sql noprint; SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): select var INTO: get separated BY ' and ' from LIB_WORK.help_zeros_2; MPRINT(ZEROS_NUMVARS_BY): quit; NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.01 seconds MLOGIC(ZEROS_NUMVARS_BY): %PUT &get SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" MPRINT(ZEROS_NUMVARS_BY): * data &help_zeros_3; SYMBOLGEN: Macro variable IN resolves to LIB_WORK.BASEX NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; ___ 180 21 The SAS System 09:31 Wednesday, June 17, 2020 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.BASEX; SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; _____ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): where APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE"; MPRINT(ZEROS_NUMVARS_BY): run; SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 ERROR: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 MPRINT(ZEROS_NUMVARS_BY): proc sort data=LIB_WORK.help_zeros_3 out=LIB_WORK.help_zeros_4; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_4 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_4 because compression overhead would increase the size of the data set. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 MPRINT(ZEROS_NUMVARS_BY): PROC TRANSPOSE data=LIB_WORK.help_zeros_4 out=LIB_WORK.help_zeros_5; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE ERROR: Variable APPLICATION_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; ERROR: Variable PRODUCT_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_5 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_5 because compression overhead would increase the size of the data set. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE 22 The SAS System 09:31 Wednesday, June 17, 2020 MPRINT(ZEROS_NUMVARS_BY): DATA LIB_WORK.help_zeros_6 (keep = APPLICATION_TYPE PRODUCT_TYPE _NAME_ _LABEL_ NZEROS i); SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_5; MPRINT(ZEROS_NUMVARS_BY): array list{*} COL: ; WARNING: Defining an array with zero elements. MPRINT(ZEROS_NUMVARS_BY): NZEROS=0; MPRINT(ZEROS_NUMVARS_BY): do i=1 to dim(list); MPRINT(ZEROS_NUMVARS_BY): if list{i}=0 then NZEROS=sum(NZEROS,1); MPRINT(ZEROS_NUMVARS_BY): end; MPRINT(ZEROS_NUMVARS_BY): RUN; WARNING: The variable APPLICATION_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable PRODUCT_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _NAME_ in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _LABEL_ in the DROP, KEEP, or RENAME list has never been referenced. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_6 because compression overhead would increase the size of the data set. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_5. NOTE: The data set LIB_WORK.HELP_ZEROS_6 has 0 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable OUT resolves to LIB_WORK.NZEROS_BY SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC APPEND base=LIB_WORK.NZEROS_BY data=LIB_WORK.help_zeros_6; MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Appending LIB_WORK.HELP_ZEROS_6 to LIB_WORK.NZEROS_BY. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_6. NOTE: 0 observations added. NOTE: The data set LIB_WORK.NZEROS_BY has 0 observations and 2 variables. NOTE: PROCEDURE APPEND used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC DELETE data=LIB_WORK.help_zeros_0 LIB_WORK.help_zeros_1 LIB_WORK.help_zeros_2 LIB_WORK.help_zeros_3 LIB_WORK.help_zeros_4 LIB_WORK.help_zeros_5 LIB_WORK.help_zeros_6 (gennum=all); MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Deleting LIB_WORK.HELP_ZEROS_0 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_1 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_2 (memtype=DATA). WARNING: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. NOTE: Deleting LIB_WORK.HELP_ZEROS_4 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_5 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_6 (memtype=DATA gennum=ALL). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds 23 The SAS System 09:31 Wednesday, June 17, 2020 cpu time 0.01 seconds MLOGIC(ZEROS_NUMVARS_BY): %SYMDEL &GET SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" WARNING: Attempt to delete macro variable APPLICATION_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "PERSONAL" must start with a letter or underscore. WARNING: Attempt to delete macro variable AND failed. Variable not found. WARNING: Attempt to delete macro variable PRODUCT_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "ASSET FINANCE" must start with a letter or underscore. MLOGIC(ZEROS_NUMVARS_BY): %DO loop index variable I is now 7; loop will iterate again. SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_0; SYMBOLGEN: Macro variable HELP_SQL_ZEROS resolves to LIB_WORK.help_sql_zeros SYMBOLGEN: Macro variable I resolves to 7 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_sql_zeros (drop=Nobs obs=7); MPRINT(ZEROS_NUMVARS_BY): run; NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_0 because compression overhead would increase the size of the data set. NOTE: There were 7 observations read from the data set LIB_WORK.HELP_SQL_ZEROS. NOTE: The data set LIB_WORK.HELP_ZEROS_0 has 7 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): proc transpose data=LIB_WORK.help_zeros_0 out=LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var _all_; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 7 observations read from the data set LIB_WORK.HELP_ZEROS_0. NOTE: The data set LIB_WORK.HELP_ZEROS_1 has 2 observations and 9 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_1 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_2(keep=var); SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var = catx('=', _NAME_, cats('"',COL1,'"') ); MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 2 observations read from the data set LIB_WORK.HELP_ZEROS_1. NOTE: The data set LIB_WORK.HELP_ZEROS_2 has 2 observations and 1 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_2 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds 24 The SAS System 09:31 Wednesday, June 17, 2020 MPRINT(ZEROS_NUMVARS_BY): proc sql noprint; SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): select var INTO: get separated BY ' and ' from LIB_WORK.help_zeros_2; MPRINT(ZEROS_NUMVARS_BY): quit; NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.00 seconds MLOGIC(ZEROS_NUMVARS_BY): %PUT &get SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" MPRINT(ZEROS_NUMVARS_BY): * data &help_zeros_3; SYMBOLGEN: Macro variable IN resolves to LIB_WORK.BASEX NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; ___ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.BASEX; SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; _____ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): where APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE"; MPRINT(ZEROS_NUMVARS_BY): run; SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 ERROR: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 MPRINT(ZEROS_NUMVARS_BY): proc sort data=LIB_WORK.help_zeros_3 out=LIB_WORK.help_zeros_4; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_4 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_4 because compression overhead would increase the size of the data set. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 25 The SAS System 09:31 Wednesday, June 17, 2020 MPRINT(ZEROS_NUMVARS_BY): PROC TRANSPOSE data=LIB_WORK.help_zeros_4 out=LIB_WORK.help_zeros_5; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE ERROR: Variable APPLICATION_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; ERROR: Variable PRODUCT_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_5 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_5 because compression overhead would increase the size of the data set. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): DATA LIB_WORK.help_zeros_6 (keep = APPLICATION_TYPE PRODUCT_TYPE _NAME_ _LABEL_ NZEROS i); SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_5; MPRINT(ZEROS_NUMVARS_BY): array list{*} COL: ; WARNING: Defining an array with zero elements. MPRINT(ZEROS_NUMVARS_BY): NZEROS=0; MPRINT(ZEROS_NUMVARS_BY): do i=1 to dim(list); MPRINT(ZEROS_NUMVARS_BY): if list{i}=0 then NZEROS=sum(NZEROS,1); MPRINT(ZEROS_NUMVARS_BY): end; MPRINT(ZEROS_NUMVARS_BY): RUN; WARNING: The variable APPLICATION_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable PRODUCT_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _NAME_ in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _LABEL_ in the DROP, KEEP, or RENAME list has never been referenced. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_6 because compression overhead would increase the size of the data set. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_5. NOTE: The data set LIB_WORK.HELP_ZEROS_6 has 0 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable OUT resolves to LIB_WORK.NZEROS_BY SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC APPEND base=LIB_WORK.NZEROS_BY data=LIB_WORK.help_zeros_6; MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Appending LIB_WORK.HELP_ZEROS_6 to LIB_WORK.NZEROS_BY. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_6. NOTE: 0 observations added. NOTE: The data set LIB_WORK.NZEROS_BY has 0 observations and 2 variables. NOTE: PROCEDURE APPEND used (Total process time): real time 0.00 seconds cpu time 0.00 seconds 26 The SAS System 09:31 Wednesday, June 17, 2020 SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC DELETE data=LIB_WORK.help_zeros_0 LIB_WORK.help_zeros_1 LIB_WORK.help_zeros_2 LIB_WORK.help_zeros_3 LIB_WORK.help_zeros_4 LIB_WORK.help_zeros_5 LIB_WORK.help_zeros_6 (gennum=all); MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Deleting LIB_WORK.HELP_ZEROS_0 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_1 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_2 (memtype=DATA). WARNING: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. NOTE: Deleting LIB_WORK.HELP_ZEROS_4 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_5 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_6 (memtype=DATA gennum=ALL). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.01 seconds MLOGIC(ZEROS_NUMVARS_BY): %SYMDEL &GET SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" WARNING: Attempt to delete macro variable APPLICATION_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "PERSONAL" must start with a letter or underscore. WARNING: Attempt to delete macro variable AND failed. Variable not found. WARNING: Attempt to delete macro variable PRODUCT_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "ASSET FINANCE" must start with a letter or underscore. MLOGIC(ZEROS_NUMVARS_BY): %DO loop index variable I is now 8; loop will iterate again. SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_0; SYMBOLGEN: Macro variable HELP_SQL_ZEROS resolves to LIB_WORK.help_sql_zeros SYMBOLGEN: Macro variable I resolves to 8 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_sql_zeros (drop=Nobs obs=8); MPRINT(ZEROS_NUMVARS_BY): run; NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_0 because compression overhead would increase the size of the data set. NOTE: There were 8 observations read from the data set LIB_WORK.HELP_SQL_ZEROS. NOTE: The data set LIB_WORK.HELP_ZEROS_0 has 8 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): proc transpose data=LIB_WORK.help_zeros_0 out=LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var _all_; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 8 observations read from the data set LIB_WORK.HELP_ZEROS_0. NOTE: The data set LIB_WORK.HELP_ZEROS_1 has 2 observations and 10 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_1 increased size by 100.00 percent. 27 The SAS System 09:31 Wednesday, June 17, 2020 Compressed is 2 pages; un-compressed would require 1 pages. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_2(keep=var); SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var = catx('=', _NAME_, cats('"',COL1,'"') ); MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 2 observations read from the data set LIB_WORK.HELP_ZEROS_1. NOTE: The data set LIB_WORK.HELP_ZEROS_2 has 2 observations and 1 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_2 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds MPRINT(ZEROS_NUMVARS_BY): proc sql noprint; SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): select var INTO: get separated BY ' and ' from LIB_WORK.help_zeros_2; MPRINT(ZEROS_NUMVARS_BY): quit; NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.01 seconds MLOGIC(ZEROS_NUMVARS_BY): %PUT &get SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" MPRINT(ZEROS_NUMVARS_BY): * data &help_zeros_3; SYMBOLGEN: Macro variable IN resolves to LIB_WORK.BASEX NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; ___ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.BASEX; SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; _____ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): where APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE"; MPRINT(ZEROS_NUMVARS_BY): run; 28 The SAS System 09:31 Wednesday, June 17, 2020 SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 ERROR: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 MPRINT(ZEROS_NUMVARS_BY): proc sort data=LIB_WORK.help_zeros_3 out=LIB_WORK.help_zeros_4; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_4 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_4 because compression overhead would increase the size of the data set. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 MPRINT(ZEROS_NUMVARS_BY): PROC TRANSPOSE data=LIB_WORK.help_zeros_4 out=LIB_WORK.help_zeros_5; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE ERROR: Variable APPLICATION_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; ERROR: Variable PRODUCT_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_5 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_5 because compression overhead would increase the size of the data set. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): DATA LIB_WORK.help_zeros_6 (keep = APPLICATION_TYPE PRODUCT_TYPE _NAME_ _LABEL_ NZEROS i); SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_5; MPRINT(ZEROS_NUMVARS_BY): array list{*} COL: ; WARNING: Defining an array with zero elements. MPRINT(ZEROS_NUMVARS_BY): NZEROS=0; MPRINT(ZEROS_NUMVARS_BY): do i=1 to dim(list); MPRINT(ZEROS_NUMVARS_BY): if list{i}=0 then NZEROS=sum(NZEROS,1); MPRINT(ZEROS_NUMVARS_BY): end; MPRINT(ZEROS_NUMVARS_BY): RUN; WARNING: The variable APPLICATION_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable PRODUCT_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _NAME_ in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _LABEL_ in the DROP, KEEP, or RENAME list has never been referenced. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_6 because compression overhead would increase the size of the data set. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_5. 29 The SAS System 09:31 Wednesday, June 17, 2020 NOTE: The data set LIB_WORK.HELP_ZEROS_6 has 0 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable OUT resolves to LIB_WORK.NZEROS_BY SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC APPEND base=LIB_WORK.NZEROS_BY data=LIB_WORK.help_zeros_6; MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Appending LIB_WORK.HELP_ZEROS_6 to LIB_WORK.NZEROS_BY. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_6. NOTE: 0 observations added. NOTE: The data set LIB_WORK.NZEROS_BY has 0 observations and 2 variables. NOTE: PROCEDURE APPEND used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC DELETE data=LIB_WORK.help_zeros_0 LIB_WORK.help_zeros_1 LIB_WORK.help_zeros_2 LIB_WORK.help_zeros_3 LIB_WORK.help_zeros_4 LIB_WORK.help_zeros_5 LIB_WORK.help_zeros_6 (gennum=all); MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Deleting LIB_WORK.HELP_ZEROS_0 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_1 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_2 (memtype=DATA). WARNING: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. NOTE: Deleting LIB_WORK.HELP_ZEROS_4 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_5 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_6 (memtype=DATA gennum=ALL). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.01 seconds MLOGIC(ZEROS_NUMVARS_BY): %SYMDEL &GET SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" WARNING: Attempt to delete macro variable APPLICATION_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "PERSONAL" must start with a letter or underscore. WARNING: Attempt to delete macro variable AND failed. Variable not found. WARNING: Attempt to delete macro variable PRODUCT_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "ASSET FINANCE" must start with a letter or underscore. MLOGIC(ZEROS_NUMVARS_BY): %DO loop index variable I is now 9; loop will iterate again. SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_0; SYMBOLGEN: Macro variable HELP_SQL_ZEROS resolves to LIB_WORK.help_sql_zeros SYMBOLGEN: Macro variable I resolves to 9 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_sql_zeros (drop=Nobs obs=9); 30 The SAS System 09:31 Wednesday, June 17, 2020 MPRINT(ZEROS_NUMVARS_BY): run; NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_0 because compression overhead would increase the size of the data set. NOTE: There were 9 observations read from the data set LIB_WORK.HELP_SQL_ZEROS. NOTE: The data set LIB_WORK.HELP_ZEROS_0 has 9 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): proc transpose data=LIB_WORK.help_zeros_0 out=LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var _all_; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 9 observations read from the data set LIB_WORK.HELP_ZEROS_0. NOTE: The data set LIB_WORK.HELP_ZEROS_1 has 2 observations and 11 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_1 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): data LIB_WORK.help_zeros_2(keep=var); SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_1; MPRINT(ZEROS_NUMVARS_BY): var = catx('=', _NAME_, cats('"',COL1,'"') ); MPRINT(ZEROS_NUMVARS_BY): run; NOTE: There were 2 observations read from the data set LIB_WORK.HELP_ZEROS_1. NOTE: The data set LIB_WORK.HELP_ZEROS_2 has 2 observations and 1 variables. NOTE: Compressing data set LIB_WORK.HELP_ZEROS_2 increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds MPRINT(ZEROS_NUMVARS_BY): proc sql noprint; SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 MPRINT(ZEROS_NUMVARS_BY): select var INTO: get separated BY ' and ' from LIB_WORK.help_zeros_2; MPRINT(ZEROS_NUMVARS_BY): quit; NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.00 seconds MLOGIC(ZEROS_NUMVARS_BY): %PUT &get SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" MPRINT(ZEROS_NUMVARS_BY): * data &help_zeros_3; SYMBOLGEN: Macro variable IN resolves to LIB_WORK.BASEX NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; 31 The SAS System 09:31 Wednesday, June 17, 2020 ___ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.BASEX; SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" NOTE: Line generated by the invoked macro "ZEROS_NUMVARS_BY". 25 data &help_zeros_3; set ∈ where &get; run; proc sort data=&help_zeros_3 out=&help_zeros_4; _____ 180 25 ! by &by; run; PROC TRANSPOSE data=&help_zeros_4 out=&help_zeros_5; by &by; RUN; DATA 25 ! &help_zeros_6 (keep = ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(ZEROS_NUMVARS_BY): where APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE"; MPRINT(ZEROS_NUMVARS_BY): run; SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 ERROR: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 MPRINT(ZEROS_NUMVARS_BY): proc sort data=LIB_WORK.help_zeros_3 out=LIB_WORK.help_zeros_4; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; MPRINT(ZEROS_NUMVARS_BY): run; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_4 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_4 because compression overhead would increase the size of the data set. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 MPRINT(ZEROS_NUMVARS_BY): PROC TRANSPOSE data=LIB_WORK.help_zeros_4 out=LIB_WORK.help_zeros_5; SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE ERROR: Variable APPLICATION_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): by APPLICATION_TYPE PRODUCT_TYPE; ERROR: Variable PRODUCT_TYPE not found. MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set LIB_WORK.HELP_ZEROS_5 may be incomplete. When this step was stopped there were 0 observations and 0 variables. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_5 because compression overhead would increase the size of the data set. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.00 seconds cpu time 0.01 seconds SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 32 The SAS System 09:31 Wednesday, June 17, 2020 SYMBOLGEN: Macro variable BY resolves to APPLICATION_TYPE PRODUCT_TYPE MPRINT(ZEROS_NUMVARS_BY): DATA LIB_WORK.help_zeros_6 (keep = APPLICATION_TYPE PRODUCT_TYPE _NAME_ _LABEL_ NZEROS i); SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 MPRINT(ZEROS_NUMVARS_BY): set LIB_WORK.help_zeros_5; MPRINT(ZEROS_NUMVARS_BY): array list{*} COL: ; WARNING: Defining an array with zero elements. MPRINT(ZEROS_NUMVARS_BY): NZEROS=0; MPRINT(ZEROS_NUMVARS_BY): do i=1 to dim(list); MPRINT(ZEROS_NUMVARS_BY): if list{i}=0 then NZEROS=sum(NZEROS,1); MPRINT(ZEROS_NUMVARS_BY): end; MPRINT(ZEROS_NUMVARS_BY): RUN; WARNING: The variable APPLICATION_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable PRODUCT_TYPE in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _NAME_ in the DROP, KEEP, or RENAME list has never been referenced. WARNING: The variable _LABEL_ in the DROP, KEEP, or RENAME list has never been referenced. NOTE: Compression was disabled for data set LIB_WORK.HELP_ZEROS_6 because compression overhead would increase the size of the data set. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_5. NOTE: The data set LIB_WORK.HELP_ZEROS_6 has 0 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable OUT resolves to LIB_WORK.NZEROS_BY SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC APPEND base=LIB_WORK.NZEROS_BY data=LIB_WORK.help_zeros_6; MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Appending LIB_WORK.HELP_ZEROS_6 to LIB_WORK.NZEROS_BY. NOTE: There were 0 observations read from the data set LIB_WORK.HELP_ZEROS_6. NOTE: 0 observations added. NOTE: The data set LIB_WORK.NZEROS_BY has 0 observations and 2 variables. NOTE: PROCEDURE APPEND used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable HELP_ZEROS_0 resolves to LIB_WORK.help_zeros_0 SYMBOLGEN: Macro variable HELP_ZEROS_1 resolves to LIB_WORK.help_zeros_1 SYMBOLGEN: Macro variable HELP_ZEROS_2 resolves to LIB_WORK.help_zeros_2 SYMBOLGEN: Macro variable HELP_ZEROS_3 resolves to LIB_WORK.help_zeros_3 SYMBOLGEN: Macro variable HELP_ZEROS_4 resolves to LIB_WORK.help_zeros_4 SYMBOLGEN: Macro variable HELP_ZEROS_5 resolves to LIB_WORK.help_zeros_5 SYMBOLGEN: Macro variable HELP_ZEROS_6 resolves to LIB_WORK.help_zeros_6 MPRINT(ZEROS_NUMVARS_BY): PROC DELETE data=LIB_WORK.help_zeros_0 LIB_WORK.help_zeros_1 LIB_WORK.help_zeros_2 LIB_WORK.help_zeros_3 LIB_WORK.help_zeros_4 LIB_WORK.help_zeros_5 LIB_WORK.help_zeros_6 (gennum=all); MPRINT(ZEROS_NUMVARS_BY): RUN; NOTE: Deleting LIB_WORK.HELP_ZEROS_0 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_1 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_2 (memtype=DATA). WARNING: File LIB_WORK.HELP_ZEROS_3.DATA does not exist. NOTE: Deleting LIB_WORK.HELP_ZEROS_4 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_5 (memtype=DATA). NOTE: Deleting LIB_WORK.HELP_ZEROS_6 (memtype=DATA gennum=ALL). 33 The SAS System 09:31 Wednesday, June 17, 2020 NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.02 seconds MLOGIC(ZEROS_NUMVARS_BY): %SYMDEL &GET SYMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" WARNING: Attempt to delete macro variable APPLICATION_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "PERSONAL" must start with a letter or underscore. WARNING: Attempt to delete macro variable AND failed. Variable not found. WARNING: Attempt to delete macro variable PRODUCT_TYPE failed. Variable not found. ERROR: Macro variable name = must start with a letter or underscore. ERROR: Macro variable name "ASSET FINANCE" must start with a letter or underscore. MLOGIC(ZEROS_NUMVARS_BY): %DO loop index variable I is now 10; loop will not iterate again. MLOGIC(ZEROS_NUMVARS_BY): %GOTO EXIT (label resolves to EXIT). MLOGIC(ZEROS_NUMVARS_BY): Ending execution. 26 27 28 GOPTIONS NOACCESSIBLE; 29 %LET _CLIENTTASKLABEL=; 30 %LET _CLIENTPROJECTPATH=; 31 %LET _CLIENTPROJECTNAME=; 32 %LET _SASPROGRAMFILE=; 33 34 ;*';*";*/;quit;run; 35 ODS _ALL_ CLOSE; 36 37 38 QUIT; RUN; 39

I cannot find the reason behind, I have not coded in SAS for years. Any help would be greatly appreciated.

Thanks in advance.

1 ACCEPTED SOLUTION

Accepted Solutions

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Look in your code for this section of code:

/* Here the condition is completed */ proc sql noprint; select var INTO: get separated BY ' and ' from &help_zeros_2; quit;*%put &get; <= This is the problem/* Here I do my subset */ data &help_zeros_3; set ∈ where &get; run;

When you use the * ; comment inside a macro the * is actually submitted to the macro processor. You can see this from your log:

YMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" MPRINT(ZEROS_NUMVARS_BY): * data &help_zeros_3; SYMBOLGEN: Macro variable IN resolves to LIB_WORK.BASEX

See that the start of the data step has the * at the front? That means the "data &help_zeros_3 was commented out. So the first part of the data step that is attempted to execute was the SET statement. Which without a data step start is "out of order".

Either always use the /* */ style of comments **or** inside a macro use the %* ; which tells the macro processor that this is Macro comment and not to submit any of the line.

6 REPLIES 6

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

It looks like there is a KEEP= option defined somewhere, perhaps as part of this macro var?

`&help_zeros_3`

Always good to check the current values for your macro variables to see what they might be bringing into your statements.

SAS Innovate 2025: Call for Content! Submit your proposals before Sept 16. Accepted presenters get amazing perks to attend the conference!

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

There is a keep 2 steps ahead, regarding another dataset no part of this step, so I cannot imagine this would be the reason

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

One of the first tools to consider when debugging macro code are the system options MPRINT , SYMBOLGEN and MLOGIC.

The MPRINT option will show the code as generated by the macro processor and is the first thing to consider:

Submit the statement:

Options mprint;

before running the macro code. The Log will have many more details.

If the issue appears to be the way one or more macro variables is constructed (from the MPRINT results) then add SYMBOLGEN, if the issue is program flow or logic then the MLOGIC option.

You can turn these off with Options NOMPRINT NOSYMBOLGEN NOMLOGIC; if they have been turned.

Then share the log results. It will be much easier to read and follow if you copy the text from the log and paste into a code box opened with the forum's </> icon to preserve text formatting.

The error message you show would originally have had the underscore character under the place SAS found something objectionable in the code (not always the actual error but where things became detectable).

It would not hurt to show the code of the entire macro and better would be to include some example data that duplicates the error. The data should be in the form of data step code. Which Instructions here: https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-dat... will show how to turn an existing SAS data set into data step code that can be pasted into a forum code box using the <> icon or attached as text to show exactly what you have and that we can test code against.

And if you haven't been using SAS for a while you may not remember, or possibly never knew, that some types of macro errors can make the SAS system appear locked down and may require restarting the session to clean out the accumulated error behaviors.

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Thanks for the answer.

I updated my post, adding the full code and the full log when the by condition is not empty. I prefer for now not to provide any example, as I think it would not necessarilly help, but I could in the future.

I updated my post, adding the full code and the full log when the by condition is not empty. I prefer for now not to provide any example, as I think it would not necessarilly help, but I could in the future.

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Look in your code for this section of code:

/* Here the condition is completed */ proc sql noprint; select var INTO: get separated BY ' and ' from &help_zeros_2; quit;*%put &get; <= This is the problem/* Here I do my subset */ data &help_zeros_3; set ∈ where &get; run;

When you use the * ; comment inside a macro the * is actually submitted to the macro processor. You can see this from your log:

YMBOLGEN: Macro variable GET resolves to APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" APPLICATION_TYPE="PERSONAL" and PRODUCT_TYPE="ASSET FINANCE" MPRINT(ZEROS_NUMVARS_BY): * data &help_zeros_3; SYMBOLGEN: Macro variable IN resolves to LIB_WORK.BASEX

See that the start of the data step has the * at the front? That means the "data &help_zeros_3 was commented out. So the first part of the data step that is attempted to execute was the SET statement. Which without a data step start is "out of order".

Either always use the /* */ style of comments **or** inside a macro use the %* ; which tells the macro processor that this is Macro comment and not to submit any of the line.

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Thanks a lot. That was it. And thanks for the explanation too, very useful.

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

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.