Type : CREATION_INTERNE
Les données sont générées directement dans le code via des instructions d'affectation et OUTPUT.
| 1 | DATA ratings; |
| 2 | LENGTH rating $4; |
| 3 | rating = 'A+'; |
| 4 | moodys = 'Baa2'; |
| 5 | s_and_p = 'BBB+'; |
| 6 | fitch = 'A+'; |
| 7 | OUTPUT; |
| 8 | rating = 'Aa3'; |
| 9 | moodys = 'Aa3'; |
| 10 | s_and_p = 'AAA'; |
| 11 | fitch = 'AA-'; |
| 12 | OUTPUT; |
| 13 | rating = 'c'; |
| 14 | moodys = 'Aa3'; |
| 15 | s_and_p = 'AAA'; |
| 16 | fitch = 'AA-'; |
| 17 | OUTPUT; |
| 18 | rating = 'D-'; |
| 19 | moodys = 'Aa3'; |
| 20 | s_and_p = 'D-'; |
| 21 | fitch = 'D-'; |
| 22 | OUTPUT; |
| 23 | RUN; |
| 1 | DATA ratings_match; |
| 2 | SET ratings; |
| 3 | LENGTH rating_match $8; |
| 4 | |
| 5 | IF rating = moodys THEN rating_match = 'moodys'; |
| 6 | ELSE IF rating = s_and_p THEN rating_match = 's_and_p'; |
| 7 | ELSE IF rating = fitch THEN rating_match = 'fitch'; |
| 8 | ELSE rating_match = 'no match'; |
| 9 | RUN; |
| 1 | DATA ratings_match; |
| 2 | SET ratings; |
| 3 | /* WHICHC talar om variabelnumret man fr trff p, baserat p ordningen |
| 4 | man raddar upp variablerna i p samma stt som COALESCEC. |
| 5 | Finns bara trff i en variabel spelar ordningen ingen roll. |
| 6 | Prioordning (i de fall man fr trff p flera): |
| 7 | 1. Moodys |
| 8 | 2. S&P |
| 9 | 3. Fitch */ |
| 10 | variable_match_number = whichc(rating, moodys, s_and_p, fitch); |
| 11 | RUN; |
| 1 | DATA ratings_match; |
| 2 | SET ratings; |
| 3 | LENGTH rating_match $8; |
| 4 | /* Array fr att peka p de tre variablerna med vrden, |
| 5 | mste ha samma ordning som WHICHC */ |
| 6 | array rating_agency [3] moodys s_and_p fitch; |
| 7 | |
| 8 | variable_match_number = whichc(rating, moodys, s_and_p, fitch); |
| 9 | |
| 10 | /* Fr man trff i ngon variabel g vidare och plocka fram namnet p variabeln */ |
| 11 | IF variable_match_number THEN rating_match = vname(rating_agency[variable_match_number]); |
| 12 | ELSE rating_match = 'no match'; |
| 13 | RUN; |
| 1 | /* ndrar ordningen p WHICHC och inte arrayen, blir helt tokigt. |
| 2 | r det lnga listor kan man med frdel speca ordningen i en |
| 3 | makrovariabel s man bara gr det 1 gng. */ |
| 4 | DATA ratings_match_error; |
| 5 | SET ratings; |
| 6 | LENGTH rating_match $8; |
| 7 | array rating_agency [3] moodys s_and_p fitch; |
| 8 | |
| 9 | variable_match_number = whichc(rating, s_and_p, fitch, moodys); |
| 10 | |
| 11 | IF variable_match_number THEN rating_match = vname(rating_agency[variable_match_number]); |
| 12 | ELSE rating_match = 'no match'; |
| 13 | RUN; |