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;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.
Ready to level-up your skills? Choose your own adventure.