It would be nice to have a way to set the order of the variables in the output data set based on the order of the variables listed in a KEEP= data set option. I apologize if this already exists, I did a quick Google search and the only ways I see to achieve this is by using RETAIN, FORMAT, etc. before the SET statement, like in the below code. It is not a huge lift to list the variables twice, it just seems redundant. The second data step below demonstrates one way this could be done.
Thanks in advance for your attention to this matter.
data WANT (keep= ID DATE ORDERNUM AMT);
retain ID DATE ORDERNUM AMT;
set HAVE;
run;
data WANT (keep= ID DATE ORDERNUM AMT / inorder);
set HAVE;
run;