Hi,
anybody can help me how can i initiate my _n_ from 1 when my condition is met.
I am using following code to do that. It is working but it has problem where _n_ is linked to 'IF' condition.
i.e. if _Type_ = 2 is appearing in row number 5 in my table "AirCont" then my call symputx outcome gives me the outome to 'Y5' , whereas I want that _N_ initiate/incriment only when condition is met.
data _null_;
set AirCont;
if _Type_ = 2 then call symputx(compress('Y' || _n_),year);
run;
Thanks,
KP
Don't use the automatic variable _n_ . Create your own counter and use that instead.
Perhaps I don't understand the question?
If you want your own counter just make your own counter.
data _null_;
set AirCont;
if _type_=2 then do;
n+1;
call symputx(compress('Y' || n),year);
end;
run;
If you want to use the _N_ as the count of how many times the data step as iterated then change your IF to a WHERE.
data _null_;
set AirCont;
where _type_=2 ;
call symputx(compress('Y' ||_n_),year);
run;
Hi Reeza - sorry I was not clear enough.
Tom - Thanks i havent tried yet but your reply will work.
Thanks All
KP
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.