¿Truco? Leer sas7bdat sin SAS

Me han pasado una tabla SAS y no sé cómo llevármela a SPSS. Este problema es habitual y ha traído de cabeza a más de uno. Es lo que tienen estas herramientas tan propietarias; si en tu organización tienen WPS (bueno, bonito y barato), esto no pasa. En fin, me ha llegado esta cuestión y voy a plantearos una posible forma de resolverla. Podríamos usar los formatos XPORT; la persona que me pasa la tabla emplea el libname xport y me envía un fichero .xpt; sin embargo, esto no pasa. Casi siempre nos mandan el .sas7bdat y tenemos un problema. ...

5 de mayo de 2010 · rvaquerizo

Macros SAS. Limpiar una cadena de caracteres

Macro de SAS que he utilizado hoy para limpiar caracteres en una cadena de texto. Está muy limitada y es muy sencilla pero puede serviros: %macro valida(in,out); length escribe $55.; escribe=""; do i=1 to length(&in.); j=substr(&in.,i,1); if j in ('A','B','C','D','E','F','G','H','I','J','K', 'L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','Ñ') then escribe=trim(escribe)||j; else if substr(&in.,i,1)=" " then escribe=trim(escribe)||"-"; else escribe=trim(escribe); drop i j escribe; end; &out.=tranwrd(compress(escribe),"-"," "); %mend; Es bastante mala y limitada, insisto. Si alguien aporta algo se agradecerá. El tema es que recorre una variable alfanumérica carácter a carácter y si no es una letra mayúscula se lo chimpunea sin ningún miramiento, aporta un poco más de talento cuando aparece un espacio en blanco. Ahí va el ejemplo de uso: ...

29 de abril de 2010 · rvaquerizo

Macros SAS. Informe de un dataset en Excel

Tengo por ahí este programa SAS interesante. Es una macro que realiza un pequeño informe sobre un dataset. Nos ofrece la librería, las variables y el tipo, longitud, posición y formato de éstas y, por último, el número de observaciones. Si el dataset que deseamos explorar es una tabla Oracle, Informix o DB2, hace un COUNT(*) para determinar el número de observaciones. Este breve resumen lo vuelca en una tabla temporal SAS que nos llevaremos a Excel. Con ésto, los parámetros que recibe la macro son el dataset sobre el que realizamos el resumen y la ubicación del Excel de salida. Aquí os pongo el código: ...

11 de abril de 2010 · rvaquerizo

Combinaciones de k elementos tomados de n en n. Con SAS y con R

Me gustaría plantearos un problema que me ha ocurrido recientemente con SAS. Necesitaba todas las posibles combinaciones de 9 elementos tomados de $n$ en $n$. Tenía que crear un dataset con todas estas combinaciones. Antes de ponerme a programar toca buscar en Google “sas combinations” y, tras un rato buscando, encuentro el siguiente link. Este link contiene una macro de SAS que nos permite crear todas las combinaciones de $k$ elementos tomados de $n$ en $n$: ...

10 de abril de 2010 · rvaquerizo

Un acercamiento a GRAPH. PROC GANNO

Uso del PROC GANNO de SAS: El procedimiento SAS GANNO crea gráficos a partir de conjuntos de datos SAS ANNOTATE. Estos conjuntos de datos SAS ANNOTATE recogen las distintas formas o cuadros de texto que tú quieres representar. Estos conjuntos de datos han de tener unas variables que son las que recogen las formas a pintar; imprescindibles son: length function $8 style $20 color $8 text $25; retain hsys xsys ysys '3'; FUNCTION: en esta variable recogemos la forma a pintar o la acción a realizar. STYLE: fuente del texto. COLOR: color de la forma o el texto. TEXT: texto. HSYS, XSYS, YSYS: son variables del sistema donde indicas el área donde dibujas. Con estas variables hemos de formar el ANNOTATE que será el que posteriormente nos sacará en la ventana gráfica el PROC GANNO. Veamos un ejemplo de ANNOTATE: ...

7 de abril de 2010 · rvaquerizo

Ejemplo de uso de PROC GCHART

5 de abril de 2010 · rvaquerizo

Un acercamiento a GRAPH. PROC GCHART

Uno de los procedimientos más importantes a la hora de graficar con SAS es el PROC GCHART. Además, nos va a servir para trabajar con PATTERN y LEGEND, sentencias que nos dejamos en el anterior capítulo. GCHART nos permite realizar gráficos de barras, de esos que siempre hacemos en Excel porque es más sencillo y más rápido. Sin embargo, en muchas ocasiones necesitamos automatizar informes y estudios; para ello es recomendable emplear SAS en vez del habitual Excel, de ahí estas líneas que estáis leyendo. Para GCHART podemos emplear las sentencias habituales de GRAPH, pero PATTERN es especialmente importante porque SAS, por defecto, deja cada barra del mismo color. Para ilustrar el capítulo, simulo la cartera de una compañía de seguros durante 2009; mensualmente, las pólizas de esta compañía pueden ser anuladas, renovadas (nuestra cartera) o nueva producción: ...

5 de abril de 2010 · rvaquerizo

Un acercamiento a `GRAPH`. Sentencias gráficas

A la hora de trabajar con SAS/GRAPH, lo primero que vamos a escribir es: Después tenemos que conocer las sentencias de GRAPH para dar forma a nuestros gráficos. Estas sentencias no van dentro de ningún procedimiento ni paso DATA, siempre van precedidas de distintas palabras clave que nos definen los elementos de un gráfico o nos indican las opciones necesarias para su representación. Estas sentencias nos permitirán definir los ejes, patrones y opciones más globales; comenzarán por: ...

2 de abril de 2010 · rvaquerizo

Comunicar SAS con R creando ejecutables Windows

Quiero trabajar hoy con la función put de SAS para la creación de ficheros ejecutables de Windows (.BAT) y también quiero comunicar SAS con R. Mato dos pájaros de un tiro y para ello vamos a crear un script de R que llamaremos desde SAS a partir de un archivo .BAT. Un ejemplo típico y muy sencillo que espero poder ir sofisticando con el paso del tiempo hasta llegar a paquetizarlo. Tiene los siguientes pasos: ...

1 de abril de 2010 · rvaquerizo

Trucos SAS. Macrovariable a dataset

En alguna ocasión he necesitado pasar el contenido de una macrovariable a un dataset SAS. Con el tiempo he ido refinando el código empleado para hacer esta tarea y, como es habitual, lo comparto con vosotros para que os ayude en vuestro trabajo diario en grandes bancos, aseguradoras, compañías energéticas y de telecomunicaciones en las que seguro que podéis encontrar un hueco para que podamos desarrollar proyectos de calidad (¡ejem!). ...

1 de abril de 2010 · rvaquerizo