Type : MIXTE
La macro n'utilise pas de données en dur mais opère sur le jeu de données passé en paramètre (argument 'ds'). Elle analyse les métadonnées (noms des variables) de ce jeu de données.
| 1 | %put MACRO CALLED: hasvarsc v2.0; |
| 2 | |
| 3 | %macro hasvarsc(ds,varlist,casesens=no); |
| 4 | %local varmatch varlistc; |
| 5 | %IF not %LENGTH(&casesens) %THEN %let casesens=no; |
| 6 | %let casesens=%upcase(%substr(&casesens,1,1)); |
| 7 | %let varlistc=%varlistc(&ds); |
| 8 | %IF not %LENGTH(&varlistc) %THEN %DO; |
| 9 | %put NOTE: (hasvarsc) There are no character variables in the INPUT dataset therefore; |
| 10 | %put NOTE: (hasvarsc) the character variable(s) you are testing for will not be found.; |
| 11 | %let varmatch=%match(,&varlist,casesens=&casesens); |
| 12 | 0 |
| 13 | %END; |
| 14 | %ELSE %DO; |
| 15 | %let varmatch=%match(&varlistc,&varlist,casesens=&casesens); |
| 16 | %IF not %LENGTH(&_nomatch_) %THEN 1; |
| 17 | %ELSE 0; |
| 18 | %END; |
| 19 | %mend hasvarsc; |