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 macrovariables con el PROC SQL. Una macro que no es de mucha utilidad, pero con la que podemos empezar a aproximarnos al lenguaje macro de SAS:
%macro sinetiquetas(conj);
data _null_;
if index("&conj.", ".") = 0 then x = "WORK";
else x = scan("&conj.", 1, ".");
call symput('libreria', upcase(x));
if index("&conj.", ".") = 0 then y = "&conj.";
else y = scan("&conj.", 2, ".");
call symput('tabla', upcase(y));
run;
proc sql noprint;
select compress(name || "=''") into :l1 separated by " "
from sashelp.vcolumn
where libname = "&libreria." and memname = "&tabla.";
quit;
proc datasets lib=&libreria. nolist;
modify &tabla.;
label &l1.;
run;
quit;
%mend;
Primero buscamos con un paso DATA si es una tabla temporal o permanente. Creamos una macrovariable 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. Saludos.