Hoy planteo un ejemplo de uso de las vistas de SASHELP con los nombres de las columnas de una tabla SAS. Además sirve para conocer mejor el PROC DATASETS y la creación de macro variables con el PROC SQL. Una macro que no es de mucha utilidad pero con la que podemos empezar a aproximarnos al lenguage macro de SAS:
%macro sinetiquetas(conj);
data _null_;
if index("&conj.",".")=0 then x="WORK";
else x=substr("&conj.",1,index("&conj.",".")+1) ;
call symput('libreria',x);
y=substr("&conj.",index("&conj.",".")+1,length("&conj.")) ;
call symput('tabla',y);
proc sql noprint;
select compress(name||"=''") into:l1 separated by " "
from sashelp.vcolumn
where libname=upcase("&libreria.") and memname=upcase("&tabla.") ;
quit;
proc datasets lib=&libreria. nolist;
modify &tabla.;
label &l1.;
quit;
%mend;
Primero buscamos con un paso data si es una tabla temporal o permanente. Creamos una macro variable con los nombres de las variables preparadas para eliminar etiquetas (var1=»). Las etiquetas las quitamos con DATASETS y MODIFY. La macro sólo necesita como parámetro la tabla sobre la que deseamos eliminar las etiquetas. A pesar de ser un truco fácil seguro que más de uno se precompila esta macro en sus sesiones SAS.