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
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 save with the early bird rate—just $795!
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.
Ready to level-up your skills? Choose your own adventure.