Hey there, as the title says, how can I make the numberic missing value (format: BEST12., informat: 12.) showed as 'NA' in below data set?
I tried to use put() statement to transform numeric variables to character first, but the transformation doesn't work.
Thanks!
You need to assign the format to your variables too. This code works for me. You may also need to tell your data viewer what to display: different machines have different defaults and can either show raw or formatted values.
proc format; value NA .='NA'; run;
data test;
a = .; b=1; c=1; output;
a = 1; b=.; c=1; output;
a = 1; b=1; c=.; output;
format a b c NA.;
run;
I would like 'NA' to show in data view.
I tried PROC FORMAT, but it doesn't work.
You need to assign the format to your variables too. This code works for me. You may also need to tell your data viewer what to display: different machines have different defaults and can either show raw or formatted values.
proc format; value NA .='NA'; run;
data test;
a = .; b=1; c=1; output;
a = 1; b=.; c=1; output;
a = 1; b=1; c=.; output;
format a b c NA.;
run;
The NUMERIC variables of your array ZERO are still numeric.
zero [i] = 'NA' will fail as 'NA' isn't acceptable. And that is what you are doing with the PUT statement.
try
data test;
set output_de21_de42;
format _numeric_ trouble.;
run;
Change the variable(s) to a characters
Use a case statement to apply the NA values in the transformation otherwise that value.
It may be more appropriate to transpose the dataset before applying as this will mean less cols to change.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Lock in the best rate now before the price increases on April 1.
Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.
Find more tutorials on the SAS Users YouTube channel.