Desktop productivity for business analysts and programmers

Manipulate strings

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 79
Accepted Solution

Manipulate strings

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?


Accepted Solutions
Solution
‎04-18-2017 06:59 PM
Grand Advisor
Posts: 9,576

Re: Manipulate strings

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;

View solution in original post


All Replies
SAS Super FREQ
Posts: 676

Re: Manipulate strings

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

Solution
‎04-18-2017 06:59 PM
Grand Advisor
Posts: 9,576

Re: Manipulate strings

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;
☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 111 views
  • 1 like
  • 3 in conversation