SAS Programming Professionals,
Did you know that you can quickly and easily strip the
formats off of every variable in a SAS data set?
This
is handy in situations where you have a SAS data set without the associated format catalog. In such instances, it is difficult to open
the SAS data set in DATA steps and procedures, and it is difficult to view it
in SAS Explorer. Often, you may simply
choose to specify OPTIONS NOFMTERR to preserve the format associations and
still be able to work with the data set.
However, if you determine that this is too much trouble and that you
really do not want the format associations, you can permanently remove them
with the DATASETS Procedure.
Here
is an example:
/*Allocate SAS libraries*/
libname ctemp "c:\temp";
/* Create PRDSAL2 in CTEMP library */
data ctemp.prdsal2;
set sashelp.prdsal2;
run;
/* PROC CONTENTS to show the formats */
proc contents
data=ctemp.prdsal2 details;
run;
/* Strip all formats from PRDSAL2 data set*/
proc datasets
library=ctemp nolist;
modify prdsal2;
format _all_;
run;
/* PROC CONTENTS to show all formats are gone
baby gone!*/
proc contents
data=ctemp.prdsal2 details;
run;
The
first part of the example is simply setup.
The real action takes place in the DATASETS Procedure. There, we specify the relevant SAS data
library and SAS data set, CTEMP and PRDSAL2, respectively. Then, the FORMAT statement with _ALL_
strips the formats off of all of the variables in the SAS data set.
I
would bet that some of you are wondering what you need to do to strip off the
formats of individual variables… right?
That is easy enough:
proc datasets
library=ctemp nolist;
modify prdsal2;
format actual country;
run;
…will
relieve variables ACTUAL and COUNTRY of their formats. It’s that simple!
Best
of luck in all of your SAS endeavors!
----MMMMIIIIKKKKEEEE
(aka
Michael A. Raithel)
Excerpt from the book:
Did You Know That? Essential Hacks for Clever SAS Programmers
I plan to post each and every one of the hacks in the book to social media on a weekly basis. Please pass them along to colleagues who you know would benefit.
No comments:
Post a Comment