A numeric variable cannot contain strings like A00. So if the variable is numeric and when you print the values you see strings like A00 then that is the result of applying the format to the numeric values.
So if you want to see the actual numbers then just display the variable without the format attached.
So if your existing dataset is named HAVE and existing variable is named CLAIMS try running this code to see what the values actually look like.
data want;
set have;
new_number=claims;
run;
proc freq data=want;
tables new_number*claims / list missing;
run;
You should see an output that shows that 1 is mapped to 'No Claims' and 7 is mapped to 'A00' etc.
So if you want to recode the numbers you could just write logic to do it.
data want;
set have;
select (claims);
when (1) then new_number=0;
when (7) then new_number=1;
...
other new_number=.;
end;
run;
If you want to use formats or informats to do the re-mapping then you will need to create an INFORMAT that can map the values displayed by your existing FORMAT to the numbers you want.
proc format;
invalue recode
'No Claims'=0
'A00'=1
....
;
run;
data want;
set have;
new_number = input(vvalue(CLAIM),recode.);
run;
... View more