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
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.