Place to learn SAS and enhance your professional career...
Nov 8, 2009
SAS macro to reorder dataset variables in alphabetical order
How do you reorder variables in a dataset…I get this many a times….
Here’s a macro for you to achieve it…For example I’ve used a dataset sashelp.flags and created some more variables with variety of variables with names upper / lower cases and _’s to demonstrate the reorder macro….
Please try this macro for yourself and let me know your suggestions….
/* Example dataset with variety of variable names */
/*Getthe variables names to a dataset using proc contents and keeping the variable name only */
proc contents data=&dsn
/* It is very much important that you UPCASE or LOWCASE the variable names...
otherwise you get a different order...Remove this datastep and see for yourself... */
/* Sort the variable names in alphabetical order */
proc sort data=varnames;
/*Getthe observation count */
set varnames nobs=num;
call symputx('obscnt',num);/* Get the observation count */
call symputx(compress('macvar'||_n_),name); /* Get the variable names into macro variables */
/*Please NOTE that the step of getting all variable names into a macro variable could be simply done by using SQL instead of a macro