Hi
I have a panel dataset with fiscal year end dates. The second dataset is a cross-sectional one with bond issue dates.
Now, I would like to merge the first with the second based on this criterion:
The first would be matched with the second based on id(cnum and new_cusip) of course. However, the date matching criterion is that the fiscal year end date matches with the first bond issue date that occurs after the fiscal year end date.
I would appreciate any idea. I have attached two sample datasets.
Regards
Namrata
Any ideas anyone?
Sure, try this:
proc sql;
create table set3 as
select
a.*,
b.proceeds,
b.issue_date
from
sasforum.set1 as a left join
( select
intnx("YEAR", issue_date, -1, "END") as DATADATE,
issue_date,
proceeds,
newcusip
from sasforum.set2
group by newcusip, calculated DATADATE
having newcusip = min(newcusip) ) as b
on a.cnum=b.newcusip and a.DATADATE=b.DATADATE;
quit;
Replace left join with inner join if you want only the matching cases.
PG
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Select SAS Training centers are offering in-person courses. View upcoming courses for: