🔒 This topic is solved and locked.
Need further help from the community? Please
sign in and ask a new question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 01-08-2021 07:51 PM
(3627 views)
Hello SAS community,
I have the following dataset and want to concatenate numeric variables type and id separated by a dash, I think my code below does that.
data have ;
input type id ;
cards;
1 2
1 55
2 100
3 99
4 4560
5 690
;
run;
data want; length id2 $ 6;
set have;
id2 = catx('-', type, id);
run;
I want id2 to have a length of 6 but not all ids have 4 digits, to compensate for that I would like to add leading "0"s so I get
type |
id |
id2 |
1 |
2 |
1-0002 |
1 |
55 |
1-0055 |
2 |
100 |
2-0100 |
3 |
99 |
3-0099 |
4 |
4560 |
4-4560 |
5 |
690 |
5-0690 |
I'm using SAS 9.4 on a PC.
I would appreciate any help!
Margaret
1 ACCEPTED SOLUTION
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Use the Z format to convert the numbers to strings with leading zeros.
id2 = catx('-', type, put(id,z4.) );
2 REPLIES 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Use the Z format to convert the numbers to strings with leading zeros.
id2 = catx('-', type, put(id,z4.) );
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Tom, thanks so much for the quick response - it works perfectly!