Trabajo con fechas SAS. Introducción

Debido al gran número de búsquedas que llegan a AyD con el tema de las fechas y horas de SAS, me he decidido a realizar un pequeño monográfico sobre estas variables en SAS. Principalmente se estudiará: Introducción a las fechas y horas SAS. Formatos de fecha y hora en SAS. Funciones de fecha y hora en SAS. En esta primera entrega del monográfico, veremos cómo se guardan internamente las variables fecha en SAS y cómo hacemos referencia a ellas dentro de nuestros pasos DATA o procedimientos. ...

7 de noviembre de 2008 · rvaquerizo

Macros SAS. Ordenar alfabéticamente las variables de un dataset

Si deseamos ordenar alfabéticamente las variables de un conjunto de datos SAS para facilitar la realización de sumatorios masivos (importes, saldos…) y el dataset está desordenado, os planteo una macro sencilla que trabaja con una de las vistas más útiles de SASHELP. La macro permite establecer qué variables deseamos que aparezcan primero, selecciona el resto de nombres, los ordena alfabéticamente y, mediante un PROC APPEND (más rápido que un paso DATA), crea el fichero SAS con las variables ordenadas: ...

6 de noviembre de 2008 · rvaquerizo

Truco SAS. Función para contar caracteres

Si deseamos contar cuántas veces aparece un carácter dentro de una cadena en SAS, nos encontramos con que no existe ninguna función de texto específica en SAS para ello. No obstante, podemos utilizar otras funciones de texto existentes. La idea es determinar el length de la cadena con el carácter en cuestión y restarle el length de la cadena sin dicho carácter. Es decir, ¿cuántas “A” hay en la frase “Menuda crisis financiera”? Longitud con “A” y sin espacios = 22; longitud sin “A” y sin espacios = 19; luego 22 - 19 = 3 aes. Para este ejemplo no se tienen en cuenta los espacios en blanco. Veamos el programa en SAS: ...

27 de octubre de 2008 · rvaquerizo

Trucos SAS. Operar con fechas YYYYMM típicas de particiones Oracle

Este truco va orientado a programadores SAS que estén habituados a trabajar con Oracle. El SAS Tip de hoy nos permite parametrizar a la perfección la lectura de tablas históricas particionadas. En estos casos, podemos crear parámetros con macrovariables de SAS para leer las tablas Oracle sin necesidad de modificar manualmente las fechas de partición. Un ejemplo Sin parametrizar: proc sql; create table maximo as select idcliente, max(importe) as importe_semestral from ora.tabla where f_particion in (200801, 200806, 200812); quit; Parametrizado: proc sql; create table maximo as select idcliente, max(importe) as importe_semestral from ora.tabla where f_particion in (&mes_menos_6., &mes., &mes_mas_6.); quit; Con este ejemplo queda claro nuestro objetivo. En el siguiente paso DATA veremos las funciones que vamos a emplear para trabajar con fechas de partición AAAAMM (las más habituales): ...

1 de octubre de 2008 · rvaquerizo

Truco SAS. Transformaciones de variables con arrays

Hacer ceros los missing en un dataset. Crear una etiqueta "NO DISPONIBLE" en campos carácter sin valores. Cuando trabajamos con SAS, es una situación más que habitual. A continuación voy a plantear un par de ejemplos de cómo podemos usar array de variables en SAS para realizar una transformación “masiva” de variables de nuestro conjunto de datos. Poner missing numéricos a 0 Lo primero es destacar que no siempre un valor perdido equivale a 0. Cuando realizamos modelos, es necesario tener en cuenta qué hacemos con los missing; el siguiente ejemplo transforma todos los . de un dataset a 0: ...

18 de septiembre de 2008 · rvaquerizo

Truco SAS. Macro buscar y reemplazar en texto

A veces hay problemas a la hora de importar un fichero de texto a SAS. Por ejemplo, el fichero proviene de Access y tiene los números con formato europeo. El siguiente programa hace un buscar y reemplazar pero con SAS. Partimos de un fichero de texto ubicado en C:\temp\pepin.txt así: 4.497,31 2.776,50 2.555,46 6.782,73 3.752,77 8.791,32 1.599,49 6.903,17 8.584,16 7.050,30 8.061,74 2.605,04 3.666,99 7.319,29 751,63 1.919,96 5.635,12 4.795,78 9.714,18 5.342,31 9.160,85 9.752,27 7.609,17 2.409,43 1.855,36 8.768,07 1.715,74 4.031,63 8.775,23 7.256,52 2.339,50 9.234,67 6.268,95 1.531,50 4.406,24 5.395,50 Y ejecutamos el siguiente código SAS: ...

2 de septiembre de 2008 · rvaquerizo

Truco SAS. Proc contents que genera un dataset

Vamos a introducir los nombres de las variables SAS de un dataset en otro dataset. Esto puede sernos muy útil para realizar documentación, validaciones de los conjuntos de datos generados, automatización de instrucciones… Es un truco muy sencillo y tan sólo es necesario comprender el funcionamiento del ODS de SAS, explicado en otro de los mensajes de este blog. Simplemente empleamos el PROC CONTENTS de SAS y almacenamos con ODS en un dataset el resultado del listado de las variables: ...

26 de agosto de 2008 · rvaquerizo

Importar a SAS desde otras aplicaciones

Una de las labores más comunes con SAS consiste en leer e importar ficheros provenientes de otras aplicaciones. Es muy habitual trabajar con tablas de Excel, Access, Lotus, Business Objects, Microstrategy, SQL Server, SAP… Para ello, SAS dispone de algunos módulos que no se encuentran en todas las instalaciones debido a su coste. Por este motivo, voy a introduciros en una metodología muy habitual en el trabajo diario: la importación de textos delimitados con SAS. ...

28 de julio de 2008 · rvaquerizo

Truco SAS. Uso de filename y pipe

Hoy presento una de las utilidades de FILENAME para interactuar con los file systems en los que creamos tablas SAS. Consiste en emplear FILENAME con la opción PIPE. Lo que hacemos es asignar una referencia a una ejecución del sistema operativo. Por ejemplo, en Windows: filename dir_pipe pipe "dir c:\"; data uno; infile dir_pipe; input datos $char50.; run; Creamos una tabla SAS temporal que contiene el resultado de la ejecución en MS-DOS de dir c:\; muy simple. Pero donde de verdad puede sernos de utilidad el uso de PIPE es en ejecuciones con UNIX. A continuación, planteo algunos ejemplos: ...

17 de julio de 2008 · rvaquerizo

El ODS de SAS (III). Documentos HTML y PDF desde SAS

Desde SAS podemos generar PDF y HTML. Esto es muy práctico a la hora de reportar información, ya que no necesitaremos pasar por Excel o cualquier otra herramienta de ofimática para generar informes. Además, si generamos HTML podemos crear webs en las que podemos navegar por los resultados obtenidos con SAS. En este mensaje veremos algunos ejemplos prácticos de uso del ODS para conocer mejor su funcionamiento. El primero de ellos crea un informe web a partir de un PROC UNIVARIATE: ...

19 de junio de 2008 · rvaquerizo