Hi,
I am trying to run a proc univariate for a large dataset, but some of the variables' output is expressed in scientific notation and I want the absolute numbers. I can change them manually but would rather do it auotmatically.
Here is my code:
proc univariate data=corregida normaltest;
var edad INL bmi;
run;
Thank you.
Normally, if the output contains 12 or more digits to the left of the decimal, the default is to create results in scientific notation.
Instead of the output as a printed report, you can ask PROC UNIVARIATE to output the results to a SAS data set, and then apply whatever format you want to change the appearance. And then print it whatever way you please with the formatted values.
Use ODS OUTPUT to create a data set that contains the statistics. Then use PROC PRINT to display the value in whatever format you want. For example, the following captures two output tables and uses the 20.16 format to print the numerical values of the statistics:
data corregida;
call streaminit(123);
do i = 1 to 100;
edad=rand("normal",0,1e-10);
output;
end;
run;
ods trace on;
proc univariate data=corregida normaltest;
var edad ;
ods output Moments=Moments
BasicMeasures=BM;
run;
proc print data=Moments;
format nValue1 nValue2 20.16;
run;
proc print data=BM;
format locValue VarValue 20.16;
run;
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.