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
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;
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;
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;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.