Hello
I've created this macro variables
%let basemon=201601;
%let mon02=%sysfunc(intnx(month,%sysfunc(inputn(&basemon,yymmn6.)),+2),yymmn.);
%let mon01=%sysfunc(intnx(month,%sysfunc(inputn(&basemon,yymmn6.)),+1),yymmn.);
Then I created this two data statements:
data out.P24M&basemon.;
set out.P24M&basemon.;
FONTE201602=tranwrd(FONTE&mon01.,'D','1');
FONTE201602=tranwrd(FONTE&mon01.,'E','1');
FONTE201602=tranwrd(FONTE&mon01.,'A','1');
FONTE201603=tranwrd(FONTE&mon02.,'D','1');
FONTE201603=tranwrd(FONTE&mon02.,'E','1');
FONTE201603=tranwrd(FONTE&mon02.,'A','1');
run;
data out.P24M&basemon.;
set out.P24M&basemon.;
NFONTE201602= input(FONTE&mon01., comma10.);
run;
Bus what I want and it doesn´t work is this code:
data out.P24M&basemon.;
set out.P24M&basemon.;
FONTE&mon01.=tranwrd(FONTE&mon01.,'D','1');
FONTE&mon01.=tranwrd(FONTE&mon01.,'E','1');
FONTE&mon01.=tranwrd(FONTE&mon01.,'A','1');
FONTE&mon02.=tranwrd(FONTE&mon02.,'D','1');
FONTE&mon02.=tranwrd(FONTE&mon02.,'E','1');
FONTE&mon02.=tranwrd(FONTE&mon02.,'A','1');
run;
data out.P24M&basemon.;
set out.P24M&basemon.;
NFONTE&mon01.= input(FONTE&mon01., comma10.);
run;
If I write
FONTE&mon01.=tranwrd(FONTE&mon01.,'D','1');
instead of
FONTE201601=tranwrd(FONTE&mon01.,'D','1');
SAS does not assumes the macro variable that is on the left side of the equality.
How can I solve this?
... View more