I can't imagine any reason to do this, except for using proc iml.
Untested code: data onlyChar(keep= _character_) onlyNum(keep= _numeric_) ; set have; run;
Not sure that _character_ and _numeric_ can be used in this place. If not you have to query sashelp.vcolumn twice and create two macro-variables containing the variable names. Something like proc sql noprint ; select name into :charity separated by " " from sashelp.vcolumn where memname = upcase("want") and type = "num" ; Quit;
I am sure you figure out the second select by yourself.