First of all, I would get rid of all those idiotic 'some_hard_to_read_text'n names and use standard SAS-compatible names. 'XXXXXXXXX'n names only cause confusion and unnecessary work during typing.
'Smokes_(years)'n can easily be replaced by smokes_years without any loss of meaning.
If a variable that should be numeric is imported as character, you have to look at the data in the external file and correct the import process.
If a variable can't be corrected there, you have to replace it with a step like this:
%let varname=place_your_varname_here;
data want;
set have (rename=(&varname=__&varname));
&varname = input(__&varname,best.); /* use a proper informat here */
drop __&varname;
run;
... View more