Hi Reader,
My requirement is &output_date . I have created below program but no satisfied and still I want to cut short this macro.
Kindly suggest me more dynamic way for below mention senerio to get &output_date. Or there any other approch which I can do it.
data un_date ; input date1$ 10.; CARDS; 2001-UN-UN 2002-12-UN 2006-11-UN 2004-UN-02 2001 ; run;
****My pr0gram*****
%macro offset_date(date1, output_date, indset , outdset); data &outdset ; set &indset ; if &date1 ne "" then do ; if index(&date1,"UN")=0 then &output_date=&date1; else if index(&date1,"UN")> 0 then do; if scan(&date1,2,"-") eq "UN" and scan(&date1,3,"-") ne "UN" then &output_date=tranwrd(&date1,"-UN-","----"); if scan(&date1,2,"-") ne "UN" and scan(&date1,3,"-") eq "UN" then &output_date=tranwrd(&date1,"-UN",""); if scan(&date1,2,"-") eq "UN" and scan(&date1,3,"-") eq "UN" then &output_date=tranwrd(&date1,"-UN-UN",""); end; end; run; %mend offset_date; %offset_date(date1, output_date, un_date, un_data);
... View more