Hi, I am working with SAS 9.4. I am trying to create an informat which converts numeric grades (0 through 100) to character grades (A, B, C, D, E, F). If the grade is already in character format, I want the informat to keep it the same but convert it to uppercase which is why I have included the UPCASE option. This does not always work. When I try to create this informat and put in a range of 90-100, I get an error saying that the start is greater than the end. I tried to fix this error by putting in a range of 90-high instead. When I do this, I don't get the error but the numeric values of 100 are still not read correctly because they are output as the character value "F" instead of "A". On top of that, when I apply this informat SAS creates many extra observations with values of "F" that aren't supposed to be there. Here is the code I created: proc format;
invalue $Grades(upcase just)
90 - 100 = 'A'
80 - 89 = 'B'
70 - 79 = 'C'
60 - 69 = 'D'
low - 59 = 'F'
other = _same_ ;
run;
data GradesExample;
input Grade $Grades3. @@;
datalines;
100 56 a 79 94 84 C100
;
run; I have also attached a screenshot of a report of GradesExample so that you can see the errors I'm talking about.
... View more