I have numerical lab results that come in as character values (eg 0.1, 1.5 etc). I wanted to multiply this values by 1000 and keep them as character values.
Informats convert text to values. Formats convert values to text.
data want;
set have;
string = put(1000*input(string,32.),best32.-L);
run;
Change HAVE , STRING and WANT to match the names of the datasets and variable you have.
If STRING is shorter than 32 bytes long then adjust the format specification used with the PUT() function accordingly. You don't need to adjust the informat since the INPUT() function dose not care if the width used in the informat specification is larger than the length of the string being read.
Why do you want to store numbers in character variables, which makes it harder to use them?
Use numeric variables with a suitable format for display.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.