- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Looks like 'zoned decimal' for which SAS has an informat.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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).
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Looks like 'zoned decimal' for which SAS has an informat.