Hi All, I am trying to create variables to convert value from Numeric to Character depending on VTYPE values but seems things are not working and log is having issues. Can you please help me out on what is going wrong ? Below is log issues: 36 %check(name); MLOGIC(CHECK): Beginning execution. MLOGIC(CHECK): Parameter VAR has value name MPRINT(CHECK): data check; MPRINT(CHECK): set sashelp.class; SYMBOLGEN: Macro variable VAR resolves to name MPRINT(CHECK): typ = vtype(name); SYMBOLGEN: Macro variable VAR resolves to name SYMBOLGEN: Macro variable VAR resolves to name NOTE: Line generated by the invoked macro "CHECK". 36 data check; set sashelp.class; typ = vtype(&var); if typ="n" then new_&var=put(&var,best.); else new_&var=strip(&var); run; _____ 484 NOTE 484-185: Format $BEST was not found or could not be loaded. MPRINT(CHECK): if typ="n" then new_name=put(name,best.); SYMBOLGEN: Macro variable VAR resolves to name SYMBOLGEN: Macro variable VAR resolves to name MPRINT(CHECK): else new_name=strip(name); MPRINT(CHECK): run; The SAS System 08:48 Friday, December 13, 2019 NOTE: There were 19 observations read from the data set SASHELP.CLASS. NOTE: The data set WORK.CHECK has 19 observations and 7 variables. NOTE: Compressing data set WORK.CHECK 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.01 seconds cpu time 0.01 seconds MLOGIC(CHECK): Ending execution. 37 %check(age); MLOGIC(CHECK): Beginning execution. MLOGIC(CHECK): Parameter VAR has value age MPRINT(CHECK): data check; MPRINT(CHECK): set sashelp.class; SYMBOLGEN: Macro variable VAR resolves to age MPRINT(CHECK): typ = vtype(age); SYMBOLGEN: Macro variable VAR resolves to age SYMBOLGEN: Macro variable VAR resolves to age MPRINT(CHECK): if typ="n" then new_age=put(age,best.); SYMBOLGEN: Macro variable VAR resolves to age SYMBOLGEN: Macro variable VAR resolves to age MPRINT(CHECK): else new_age=strip(age); MPRINT(CHECK): run; NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column). 37:1 NOTE: There were 19 observations read from the data set SASHELP.CLASS. NOTE: The data set WORK.CHECK has 19 observations and 7 variables. NOTE: Compressing data set WORK.CHECK 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 MLOGIC(CHECK): Ending execution. 38 %check(height); MLOGIC(CHECK): Beginning execution. MLOGIC(CHECK): Parameter VAR has value height MPRINT(CHECK): data check; MPRINT(CHECK): set sashelp.class; SYMBOLGEN: Macro variable VAR resolves to height MPRINT(CHECK): typ = vtype(height); SYMBOLGEN: Macro variable VAR resolves to height SYMBOLGEN: Macro variable VAR resolves to height MPRINT(CHECK): if typ="n" then new_height=put(height,best.); SYMBOLGEN: Macro variable VAR resolves to height SYMBOLGEN: Macro variable VAR resolves to height MPRINT(CHECK): else new_height=strip(height); MPRINT(CHECK): run; NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column). 38:1 NOTE: There were 19 observations read from the data set SASHELP.CLASS. NOTE: The data set WORK.CHECK has 19 observations and 7 variables. NOTE: Compressing data set WORK.CHECK increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. The SAS System 08:48 Friday, December 13, 2019 NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds MLOGIC(CHECK): Ending execution. Thanks %macro check (var);
data check;
set sashelp.class;
typ = vtype(&var);
if typ="n" then
new_&var=put(&var,best.);
else new_&var=strip(&var);
run;
%mend;
options symbolgen mlogic mprint;
%check(name);
%check(age);
%check(height);
... View more