Trucos SAS. Eliminar etiquetas en los conjunto de datos SAS

Agosto 17th, 2009 | por rvaquerizo |

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.

  1. 2 Respuestas en “Trucos SAS. Eliminar etiquetas en los conjunto de datos SAS”

  2. Por Ricardo, Sep 23, 2011 | Responder

    Alguno de ustedes ha trabajado en SAS iteraciones como cursores. Estoy tratando de hacer lo que hace un cursor en SQL
    es decir quiero barrer un data set y dentro de ese data set barrer otro.

  3. Por rvaquerizo, Sep 24, 2011 | Responder

    Los propios pasos data te permiten manejar registros como si emplearas cursores. Si tienes la posibilidad de programar en SAS podrás hacer operaciones con registros de forma mucho más sencilla.

Publica un Comentario