Truco SAS. Identificar el proceso en Unix con SYSJOBID

Un truco SAS muy rápido y que a algún compañero le ha venido muy bien y por eso lo pongo. La macro variable & sysjobid nos idenfica el job de Unix que está corriendo en ese momento. Es una macro del sistema y se haya en el diccionario de macros de SAS. Tenemos una vista en SASHELP VMACRO de cuales son estas macros AUTOMATIC. Curiosead SASHELP, tiene algunas vistas muy interesantes, creo que ya he comentado algo sonbre ellas. ...

26 de agosto de 2009 · rvaquerizo

Trucos SAS. Eliminar etiquetas en los conjunto de datos SAS

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: ```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.

17 de agosto de 2009 · rvaquerizo

Equivalencias entre PROC `SQL` y DATA en las uniones de tablas SAS

Muchos de los que llegan a programar con SAS son grandes expertos en SQL. Cuando dominas perfectamente un lenguaje es difícil acostumbrarse a otro. Por ello quiero plantear un artículo que estudie los tipos de uniones mediante pasos DATA y su análogo con el PROC SQL. Con ello espero que los profesionales que manejan el lenguaje SQL entiendan mejor el paso DATA. En mi línea habitual creo dos dataset y manejo ejemplos. ...

12 de agosto de 2009 · rvaquerizo

En MERGE, ¿mejor IF o WHERE?

Cuando programo en SAS algún paso data como unión con MERGE a modo de filtro empleo habitualmente IF en vez de WHERE. ¿El motivo? Mejor lo vemos en ejemplos. Voy a generar dos datasets aleatorios de 2 millones de registros cada uno. Tendrán un campo autonumérico y un campo aleatorio que toma valores entre 0 y 1: options fullstimer; data uno; do i = 1 to 2000000; aleatorio1=ranuni(9); output; end; run; data dos; do i = 1 to 2000000; aleatorio2=ranuni(2); output; end; run; Empleamos la opción fullstimer de SAS que nos ofrece unas estadísticas más detalladas de cada ejecución en el log, fundamentalmente nos interesa el tiempo real de ejecución. Los datasets aleatorios tienen las mismas observaciones y una estructura muy parecida. La idea es comparar el uso de IF frente a WHERE en un MERGE. Realizamos uniones horizontales entre ambas tablas y filtraremos sólo las observaciones con un valor del autonumérico i par, lo haremos de 3 formas pofibles y analizaremos el log: ...

11 de agosto de 2009 · rvaquerizo

Truco SAS. Transformación EBCDIC (Mainframe)

Hay ocasiones en las que tenemos que leer directamente de entornos Mainframe ficheros DB2, conocemos la estructura de esos ficheros y necesitamos leerlos vía FTP. Para ello tenemos que tener en cuenta la transformación EBCDIC (Extended Binary Coded Decimal Interchange Code ) a ASCII (American Standard Code for Information Interchange), esta transformación requiere las siguientes equivalencias entre formatos: Decimales empaquetados: PD5. -> S370FPD5. Enteros binarios: IB5. -> S370FIB5. Caracter: 5. ->EBCDIC5. Numérico con 0: Z5. -> S370FZDU5. De modo que para leer el fichero del Mainframe haremos: ...

15 de julio de 2009 · rvaquerizo

Integración de R con SAS, SPSS y otros

Recientemente se publicó en este blog una entrada haciendo mención a la futura integración de R en SAS. Existe, de hecho, un procedimiento artesanal de lanzar procesos de R desde SAS basado en la posibilidad de realizar llamadas al sistema operativo desde SAS. No obstante, SAS ha decidido ahondar en dicha integración y proporcionale un marchamo corporativo. Sin embargo, esta iniciativa dista mucho de ser la pionera y merce la pena lanzar una mirada panorámica al mercado. Por ejemplo: ...

3 de junio de 2009 · cgbellosta

Trucos SAS. Pasar de caracter a numérico y viceversa

Llega un gran número de visitas a AyD buscando como transformar en SAS variables caracter a numéricas y viceversa. Pero estas visitas están muy poco tiempo y me he planteado que los mensajes que hay dedicados al uso de PUT e INPUT no son claros. Por este motivo planteo un truco SAS de transformación de variables muy corto y concreto. Como es habitual lo vemos con ejemplos: Transformar de caracter a numérico: ...

3 de junio de 2009 · rvaquerizo

SAS comienza a fijarse en R

SAS comienza a fijarse en R Interesante nocicia leída en ComputerWorld: SAS amplía las opciones de análisis avanzado para sus clientes con la nueva interfaz de software estadístico de código abierto R. La integración inicial de R en SAS estará incluida en SAS/IML Studio 3.2 (antes SAS Stat Studio) este verano. Fiel a su filosofía de escuchar a los clientes y dar respuesta a sus necesidades cambiantes, política que le han proporcionado a la compañía 33 años de crecimiento ininterrumpido, SAS da un paso más y anuncia la introducción del código R dentro del entorno de SAS. De esta forma, los desarrolladores de modelos estadísticos tendrán más opciones para extraer valor de los datos, usando la gran variedad de métodos ofrecidos por SAS a la vez que experimentan con nuevos métodos todavía no implementados en SAS con la interfaz R. ...

28 de mayo de 2009 · rvaquerizo

Entrevista a Jim Goodnight fundador de SAS

Interesante entrevista a Jim Goodnight CEO y co-fundador de de SAS. A SAS no parece afectarle la crisis que están sufriendo los más importantes bancos del mundo. Se están adaptando a la nueva demanda de software para el fraude y riesgos crediticios. También están haciendo un guiño a la optimización de precios. Con estas medidas SAS no se plantea despidos siempre y cuando la recesión no empeore…

14 de abril de 2009 · rvaquerizo

SAS Global Forum 2009

Ya tenéis disponibles los «paper» del SAS Global Forum 2009. Echadle un vistazo porque siempre merecen la pena. Por otro lado se creó un blog donde tenéis algunas entrevistas todo muy típico y tópico, al fin y al cabo se trata de vender las excelencias de esta herramienta tan cara. Pero creo que la entrevista a Mike Thomas sobre plataformas móviles de información me ha despertado mucha curiosidad. Hay que reinventar el BI, es un concepto bastante obsoleto y las comunicaciones móviles pueden ser una buena base. ...

12 de abril de 2009 · rvaquerizo