I'm reading in multiple files that need to be stacked into a single dataset. In some files, column A contains all numeric values. In other files, an * appears when numeric values are missing, defining the column type as character. I have a data step that sets * to missing and then creates a new numeric column using the input function. Is there a way to reference column type as part of a do statement where the data step executes only when the column type is character? Alternatively, is there a way to suppress "Invalid numeric data, '*'" message from the log? data one;
input ID A;
datalines;
2477 195
2431 220
2456 173
2412 135
;
run;
data two;
input ID A $;
datalines;
3777 *
9731 *
7756 110
2712 *
;
run;
data stacked;
set _null_;
run;
%macro make_num(set);
data &set;
set &set;
if A = "*" then A = "";
A_Num = input(A, best12.);
run;
data stacked;
set stacked &set (drop = A);
run;
%mend;
%make_num(one);
%make_num(two);
... View more