Sas

Asked • 03/19/19

How to pad out character fields in SAS?

I am creating a SAS dataset from a database that includes a VARCHAR(5) key field. This field includes some entries that use all 5 characters and some that use fewer. When I import this data, I would prefer to pad all the shorter entries out to use all five characters. For this example, I want to pad on the left with `0`, the character zero. So, `114` would become `00114`, `ABCD` would become `0ABCD`, and `EA222` would stay as it is. I've attempted this with a simple data statement, but of course the following does not work: data test; set databaseinput; format key $5.; run; I've tried to do this with a user-defined informat, but I don't think it's possible to specify the ranges correctly on character fields, per [this SAS KB answer][1]. Plus, I'm fairly sure proc format won't let me define the result dynamically in terms of the incoming variable. I'm sure there's an obvious solution here, but I'm just missing it. [1]:http://support.sas.com/kb/7/570.html

1 Expert Answer

By:

Still looking for help? Get the right answer, fast.

Ask a question for free

Get a free answer to a quick problem.
Most questions answered within 4 hours.

OR

Find an Online Tutor Now

Choose an expert and meet online. No packages or subscriptions, pay only for the time you need.