DATA Step, Macro, Functions and more

character ssn to numeric, keeping leading zeros

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 121
Accepted Solution

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
Respected Advisor
Posts: 4,663

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

View solution in original post


All Replies
Solution
‎02-16-2016 05:50 PM
Respected Advisor
Posts: 4,663

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: 10,550

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.

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

Discussion stats
  • 2 replies
  • 1002 views
  • 0 likes
  • 3 in conversation