Dear SAS community users,
I have an unbalanced panel data set with firm years. In that set, I have a dummy marking an event year (year when new stock is issued). I want to find the median of a variable (sale, for example) 3 years before the event year for each firm ID. Then I want to find the median of the same variable 5 years after the event year for each firm ID.
I'd appreciate any help here. Thank you in advance.
Regards,
Hinh
Do it in one step with correlated sub-queries:
proc sql;
create table medianSales as
select
firm,
( select median(sales)
from have
where firm=a.firm and year between a.year-3 and a.year-1 )
as medianSalesBefore,
( select median(sales)
from have
where firm=a.firm and year between a.year+1 and a.year+5 )
as medianSalesAfter
from have as a
where flag;
select * from medianSales;
quit;
If you have SAS 9.4 - median function not valid in PROC SQL in earlier versions.
It won't generate an error, but it won't be the metric you expect.
Thanks @Reeza. A good thing to know.
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.