Monday, July 6, 2009

SAS: Replace Missing with Zeros - only for all numeric variables

data test;
format z date8.;
input x y $ z mmddyy10. w;
datalines;
12 srikanth 3-01-1988 8.9
34 kanth 2-7-2009 8.34
12 srikanth 3-01-1988 8.9
34 kanth 2-7-2009 8.34
. srikanth 3-01-1988 8.9
34 kanth 2-7-2009 8.34
;
run;
/* Please provide data set name over here
it will create new data set as copy_old data set name */
%let orginal_dataset=test;
proc contents data=&orginal_dataset. out=data_map(keep=name type format);run;
data data_map;set data_map;
if (type=1 and format ="");run;
data _null_;set data_map;
call symput("n",_N_);
call symput('Var'left(_n_), name);run;
%macro missing_with_zero;
data copy_&orginal_dataset.;set &orginal_dataset.;
%do i=1 %to &n.;
if (&&var&i. eq .) then &&var&i.=0;
%end;run;
%mend;
%missing_with_zero;

No comments:

Post a Comment