Hi,
I am trying to calculate the firm age based on FISCAL_YEAR_END_OP. I am trying to index the file in order to calculate from the first to late date of the opinion in my dataset. I am not able to output an age based on the code below.
Any help would be greatly appreciated!
proc sort data=opinion;
by COMPANY_FKEY FISCAL_YEAR_END_OP;
run;
data age;
retain index;
set opinion;
if index=. then index=0;
if COMPANY_FKEY = lag(COMPANY_FKEY) then index=index;
else index=index+1;
run;
data age;
set age;
by index;
if first.index then output age;
run;
proc sort data=opinion;
by company_fkey fiscal_year_end_op;
run;
data age;
set opinion;
lag_company_fkey=lag(company_fkey);
if company_fkey^=lag_company_fkey then index+1;
run ;
I'm not really understanding the point of your last data step.
Would you please show a sample of how your starting data looks? And how you want the result to look like?
Show some example data. Is your FISCAL_YEAR_END_OP a SAS date value, a numeric that represents a year, something else?
I doubt if your "index" is at all needed.
If your FISCAL_YEAR_END_OP is a year value such as 1994 then this might be as simple as:
Proc means data=opinion range; (or since you are counting with your "index" use N instead of range to get number of records for each company_fkey)
class COMPANY_FKEY
var FISCAL_YEAR_END_OP;
run;
but without knowing what kind of values it is pretty hard to tell whether the calculation you are using is appropriate or not.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.