## character ssn to numeric, keeping leading zeros

Solved
Regular Contributor
Posts: 182

# character ssn to numeric, keeping leading zeros

Hi!

I am trying to convert a character format SSN to a numeric and keep the leading zeros.  I keep getting the error

ERROR 48-59: The informat Z was not found or could not be loaded for different ways I have tried to run the syntax.

data ssn_test;

set have;

sponssn1=input (sponssn, z9.);

run;

Appreciate any help!

Thanks

Accepted Solutions
Solution
‎02-16-2016 05:50 PM
Posts: 5,519

## Re: character ssn to numeric, keeping leading zeros

Input function requires an informat, not a format like z9. You don't need a special informat to read a number with leading zeros. What you need is to associate the format z9. to your variable, so that leading zeros are displayed when you print the number. Try something like this:

``````data ssn_test;
set have;
sponssn1 = input (sponssn, best.);
format sponssn1 z9.;
run;``````
PG

All Replies
Solution
‎02-16-2016 05:50 PM
Posts: 5,519

## Re: character ssn to numeric, keeping leading zeros

Input function requires an informat, not a format like z9. You don't need a special informat to read a number with leading zeros. What you need is to associate the format z9. to your variable, so that leading zeros are displayed when you print the number. Try something like this:

``````data ssn_test;
set have;
sponssn1 = input (sponssn, best.);
format sponssn1 z9.;
run;``````
PG
Super User
Posts: 13,498

## Re: character ssn to numeric, keeping leading zeros

First, verify that your SSN do not have - or spaces imbedded.

Then use a different informat, the Z informats are for zoned decimals and that is not what you want. BEST9. should work for input. Then assign either a Z9. FORMAT to see leading zeroes or possibly the SSN format which will display

data example;

sponssn= '000123456';

sponssn1 = input(sponssn,best9.);

put "Display with Z9.: " sponssn1= z9. +1 "Display with SSN11.: " sponssn1= ssn11.;

run;

🔒 This topic is solved and locked.