PROC FORMAT ;
PICTURE Num .="NA"
OTHER= "000.00%";
run;
data test;
input Number ;
format Number num. ;
cards;
10910.63%
63.91%
75.56%
-77.08%
.
.
0.74%
-8.12%
.
run;
I want only missing value to be replaced by NA and others value remains same in percentage .
Why do you have % character in data you are reading in as numeric? This code works fine (note, its not a good idea to use reserved words as names of formats - or anything else for that matter):
proc format; picture mypcent .="NA" other= "000.00%"; run; data test; input number; format number mypcent.; cards; 10910.63 63.91 75.56 -77.08 . . 0.74 -8.12 . run;
You need to change your format slightly and add an informat to read the percentages
PROC FORMAT ;
value Num
.="NA"
other=[percentn8.2]
;
run;
data test;
input Number ;
informat number percent9.;
format Number num. ;
cards;
10910.63%
63.91%
75.56%
-77.08%
.
.
0.74%
-8.12%
.
run;
Why do you have % character in data you are reading in as numeric? This code works fine (note, its not a good idea to use reserved words as names of formats - or anything else for that matter):
proc format; picture mypcent .="NA" other= "000.00%"; run; data test; input number; format number mypcent.; cards; 10910.63 63.91 75.56 -77.08 . . 0.74 -8.12 . 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.