Have: '89', '240', 'E9C10'. (original strings)
Need: 'cc00089', 'cc00240', 'ccE9C10'. (new strings)
Basically, new strings (7 characters)= 'cc' + '0's + original strings.
Previously achieved in Excel using macros, not sure how to do in SAS?
data want;
length orig $ 5;
length temp $ 5;
do orig = '89', '240', 'E9C10', '1';
temp=orig;
want='cc'||translate(right(temp),'0',' ');
output;
end;
drop temp;
run;
Hi
You can use the LENGTH and REPEAT functions to get what you need, see sample below.
data want;
length orig $ 7;
length want $ 7;
do orig = '89', '240', 'E9C10', '1';
l_orig = length(orig);
want = cats("cc", repeat("0", 5 - 1 - length(orig)) , orig);
l_want = length(want);
output;
end;
run;
Bruno
data want;
length orig $ 5;
length temp $ 5;
do orig = '89', '240', 'E9C10', '1';
temp=orig;
want='cc'||translate(right(temp),'0',' ');
output;
end;
drop temp;
run;
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 lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.