BookmarkSubscribeRSS Feed
cindyforest7
Calcite | Level 5


Hello all,

I have a list of numbers under variable A:

A

1

3

45

5

4567

234

33

Now I want to get

A

00000001

00000003

00000045

00000005

00004567

00000234

00000033

Each number now will have 8 digits.

How to do it in SAS?

Thanks so much!

Cindy

3 REPLIES 3
ballardw
Super User

Is A numeric or character?

If numeric do you actually need a new variable or for it just to appear with leading zeroes? In this case you can just assign a format to display with zeroes: Format a z8. ;

If A is character there's a number of ways but

A = put(input(a, best8.),z8.) ; might work.

cindyforest7
Calcite | Level 5

Thanks!'

It is numeric, and I don't want to create a new variable.

If I want to merge two tables based on A (one table displays with zero, one table does not ), will changing formating work?

CTorres
Quartz | Level 8

If A is numeric in both SAS tables you should be able to merge the tables without changing anything.
The internal representation of A (numeric variable) is the same in both tables. The diference in the display should be because of the format in the table: Z8. (with leading zeroes) v.s. 8. or best8. or none (without leading zeroes)

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 1505 views
  • 0 likes
  • 3 in conversation