Hi All,
To read the below percent field used this format which works fine.But I want to know how exactly the percentw.d format is woking internally because i have not understood how it is storing and displaying the percent data with some examples.
informat percentofmarks percent6.;
format percentofmarks percent8.2;
---------------------------------------------------
studentname Standard percentageofmarks
syed 6 67.25%
----------------------------------------------------
Please describe this.
Thank you:)
The percentw.d informat instructs SAS to read data containing percentages as numeric. Refer to https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000204437.htm
The percentw.d format does the opposite, it writes numeric data as percentages. Refer to https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000205182.htm
Percentages are stored as the number you would use in mathematical operations. So 50% is stored as 0.5.
36 data test;
37 informat percentofmarks percent6.;
38 format percentofmarks percent8.2;
39 input studentname $ Standard percentofmarks ;
40 put percentofmarks = best12. ;
41 put percentofmarks = percent8.2 ;
42
43 cards;
percentofmarks=0.6725
percentofmarks=67.25%
beware the D in any INFORMATw.d
INPUT will assume the last "d" digits are decimal places even when you have no dot!
158 data;
159 input percD percent6.1 @1 perc_noD percent6. @1 str_ $ ;
160 put (str_ perc: perc:)( $8. 2*percent9.1 2*best9.) ;
161 cards;
12.1% 12.1% 12.1% 0.121 0.121
12% 1.2% 12.0% 0.012 0.12
NOTE: The data set
the D in informatW.D is really only there for binary informats which cannot present the dot
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.