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.
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.