BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
sas_university
Obsidian | Level 7

i have 2 variables

p_id      dob

101      21/01/2000

 

i want like this

p_id  dod               age     month  age_m_d

101  21/01/2000    22        22.9     22Y9M11D

 help me

1 ACCEPTED SOLUTION

Accepted Solutions
Ksharp
Super User
data have;
input p_id      dob :ddmmyy10.;
temp=intck('month',dob,date(),'c');
age=int(temp/12);
month=mod(temp,12);
day=date()-intnx('month',dob,temp,'s');
age_m_d=cats(age,'Y',month,'M',day,'D');
drop temp;
format dob ddmmyy10.;
cards;
101      21/01/2000
;

View solution in original post

2 REPLIES 2
Ksharp
Super User
data have;
input p_id      dob :ddmmyy10.;
temp=intck('month',dob,date(),'c');
age=int(temp/12);
month=mod(temp,12);
day=date()-intnx('month',dob,temp,'s');
age_m_d=cats(age,'Y',month,'M',day,'D');
drop temp;
format dob ddmmyy10.;
cards;
101      21/01/2000
;
sas_university
Obsidian | Level 7

Thank you

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 877 views
  • 1 like
  • 2 in conversation