Hi:
I'm not entirely sure I understand your question and I no longer have SAS 9.1.3 to test with. However, I am fairly certain that format handling has not changed between SAS 9.1.3 and SAS 9.2. I also do not understand what you mean when you say that "tables output does not show up with the assigned value labels, but only with the initial numbers for the levels of 'origin' and 'scoreWWcbd'".
Consider the program below. In it I have 2 formats...one numeric format (AGEF) that will be used with the numeric variable AGE to split my obs into Driver and Non-driver categories. Then I have another numeric format (ALTAGE) that can also be used to split my studnets into either Pre-Teen or Teenager categories.
After I create WORK.CLASS and permanently assign the AGEF format to the AGE variable, I run a PROC CONTENTS to show that the AGE variable is still numeric, but the permanently assigned format AGEF will be used to DISPLAY (and only display) the values of AGE in all procedures that use formats.
[pre]
proc format;
value agef 11-14 = 'Not Driving'
15-High = 'Driving Age';
value altage 11-12 = 'Pre-Teen'
13-19 = 'Teenager';
run;
data class;
set sashelp.class;
format age agef.;
run;
title; footnote;
ods listing close;
ods html file='c:\temp\fmtques.html' style=sasweb;
ods html select variables;
proc contents data=class;
title '1) Note that AGE is still a NUMERIC variable';
run;
proc freq data=class;
title '2) Now the AGEF format is automatically used in PROC FREQ';
tables age;
run;
proc freq data=class;
title '3) Here, the ALTAGE format is used for AGE variable';
tables age;
format age altage.;
run;
proc freq data=class;
title '4) Note that NO format is used because "null" format statement removes any format for age';
tables age;
format age;
run;
ods _all_ close;
[/pre]
So, for Report #2, the PROC FREQ does not need a FORMAT statement and the user-defined format AGEF will be used to the frequency table. But, in Report #3, when I use the explicit FORMAT statement to associate AGE with the ALTAGE format, the output now shows the new categories being used. Then in Report #4, with a "null" format statement, I am instructing PROC FREQ to bypass the use of the formatted values for the AGE variable and to just show me the ages without any format being applied.
It looks to me as though you are trying to use numeric values to create a new numeric value (scoreWWcbd) and then have a label used for the new values of scoreWWcbd. One thing you could do is use a format to create your new variable. You could create your scoreWWcbd without using IF statements -- just by using a user-defined format. See the program at the end of the post. It uses a format to create a new numeric variable (NUMVAR) and a new character variable (CHARVAR) from score_WW. Note, how, in the PROC PRINT output, the value for Dave shows up as 6 for both CHARVAR and NUMVAR, because my user-defined format did not account for a value of 6 in the format definition (I suspect, but am not sure, that this behavior might be what you are seeing in your format usage.)
If you really believe you have an issue between SAS 9.1.3 and SAS 9.2, then your best resource is to work with Tech Support.
cynthia
[pre]
proc format;
value scWW
1-1.5 = '0'
2-2.5 = '1'
3-5 = '2';
value altsc
1-1.5 = 'sound'
2-2.5 = 'uneven'
3-5 = 'lame'
other = 'unknown value outside range';
run;
data testfmt;
infile datalines;
input name $ score_WW;
charvar = put(score_WW,scww.);
numvar = input(charvar,best2.);
return;
datalines;
alan 1.3
barb 2.4
carl 4.0
dave 6.0
;
run;
ods listing close;
ods html file='c:\temp\fmt_make_vars.html' style=sasweb;;
ods html select variables;
proc contents data=testfmt;
title 'Check the different types for charvar and numvar';
run;
proc print data=testfmt;
title 'Notice how charvar and numvar are set based on value for score_WW -- without IF statements';
run;
proc freq data=testfmt;
tables score_ww;
format score_ww altsc.;
run;
ods _all_ close;
title; footnote;
[/pre]