My data is the following:
ID | BirthYear | BirthMonth | PensionYear | PensionMonth |
1 | 1944 | 1 | 2009 | 8 |
2 | 1947 | 2 | 2012 | 7 |
3 | 1941 | 10 | 2007 | 5 |
The table above shows when the person is born and when the person retired. I need to create two additional variables which show retirement age as 1. number of years and 2. number of month. For example I need to calculate that ID 1 has retired at the age of 65 years and 8 month.
ID | BirthYear | BirthMonth | PensionYear | PensionMonth | PensionAgeYears | PensionAgeMonth |
1 | 1944 | 1 | 2009 | 8 | 65 | 8 |
2 | 1947 | 2 | 2012 | 7 | 65 | 5 |
3 | 1941 | 10 | 2007 | 5 | 65 | 7 |
Thanks!
Something like this?
data mydata;
input ID $ BirthYear BirthMonth PensionYear PensionMonth;
datalines;
1 1944 1 2009 8
2 1947 2 2012 7
3 1941 10 2007 5
;
data PensionData;
set mydata;
Birthdate = mdy(BirthMonth,1,BirthYear);
Pensiondate = mdy(PensionMonth,1,PensionYear);
PensionAgeYears = intck('year', Birthdate, Pensiondate, 'c');
PensionAgeMonth = intck('month', intnx('year', Birthdate, PensionAgeYears, 's'), Pensiondate, 'c');
format Birthdate Pensiondate ddmmyy10.;
drop Birthdate Pensiondate;
run;
Something like this?
data mydata;
input ID $ BirthYear BirthMonth PensionYear PensionMonth;
datalines;
1 1944 1 2009 8
2 1947 2 2012 7
3 1941 10 2007 5
;
data PensionData;
set mydata;
Birthdate = mdy(BirthMonth,1,BirthYear);
Pensiondate = mdy(PensionMonth,1,PensionYear);
PensionAgeYears = intck('year', Birthdate, Pensiondate, 'c');
PensionAgeMonth = intck('month', intnx('year', Birthdate, PensionAgeYears, 's'), Pensiondate, 'c');
format Birthdate Pensiondate ddmmyy10.;
drop Birthdate Pensiondate;
run;
Thanks!! this is perfect!
Anytime, Glad I could help 🙂 Please mark it as a solution
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.