DATA Step, Macro, Functions and more

Substring and replace

Accepted Solution Solved
Reply
Contributor
Posts: 35
Accepted Solution

Substring and replace

Hello,

I was recently given some numeric data the ends in a character. The last characce ter corresponds to a numeric variable.

Ex.

000A = 0001

000B = 0002

Right now I'm using the Substr() function to get the last character of every variable, then I replace it and join the new converted number back on. I was wondering if you all knew a more efficient method.

Thanks


Accepted Solutions
Solution
‎10-25-2013 03:57 PM
Valued Guide
Posts: 2,177

Re: Substring and replace

Looks like 'zoned decimal' for which SAS has an informat.

View solution in original post


All Replies
Super Contributor
Posts: 253

Re: Substring and replace

substr(yourvar,4,1) = put(rank(substr(yourvar,4,1))-64,1.);

assuming it's always uppercase and you are on a standard ASCII system (not EBCDIC).  'A'=65 through 'Z'=90.  Of course if you go past I ('9' in this) you will have a problem of space (what happens to the second digit).

Solution
‎10-25-2013 03:57 PM
Valued Guide
Posts: 2,177

Re: Substring and replace

Looks like 'zoned decimal' for which SAS has an informat.

🔒 This topic is solved and locked.

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

Discussion stats
  • 2 replies
  • 257 views
  • 4 likes
  • 3 in conversation