Type : MIXTO
La macro no utiliza datos codificados de forma rígida, sino que opera sobre el conjunto de datos pasado como parámetro (argumento 'ds'). Analiza los metadatos (nombres de variables) de este conjunto de datos.
| 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; |