Macros SAS. Primer y último día del mes de una fecha SAS

Me debo a vosotros, mis lectores. Y he tenido visitas que buscaban como obtener el primer y el último día de un mes con SAS. Como Análisis y Decisión es una web personalizada voy a dar respuesta a esas búsquedas. Para ello tengo os planteo dos macros de SAS, además nos servirán para entender mejor la función INTNX para operar con fechas. El siguiente ejemplo parte de la necesidad de obtener, dada una fecha, el primer y último día del mes de la fecha dada:

El seguro de crédito interesante reto técnico

Dando un paseo por www.icea.es he visitado los ranking de seguros no vida de 2007 y 2008. Me ha impactado un valor. Entre las 25 entidades más potentes de 2008 hay una que hay dos que han crecido por encima del resto con respecto al año 2007:

seguro-de-credito.JPG

En estas líneas nos vamos a centrar en Crédito y Caución que ha incrementado sus primas en casi un 20%. El caso de Pelayo, que incorpora Munat (leer la noticia) necesitará también un análisis, ya que todas las compañías quieren subir en los ranking y para ello aparecerán movimientos de cesiones y compras a corto plazo.

Transformar variables en SAS. Carácter a numérico

Muchas visitas a este sitio son búsquedas de Google que plantean la problemática que surge al transformar variables caracter a numéricas y viceversa con SAS. Las palabras habituales son «transformar texto a número SAS», «como paso de variable string a numerica en sas», «pasar de caracter a fecha en SAS», «sas transformar fecha numerica en texto», son todas búsquedas que han generado mucho tiempo de estancia en el sitio a pesar de que no existe un mensaje específico. En el siguiente monográfico vamos a tratar estas conversiones. De esta forma se crearán una serie de dos post que pueden ser un interesante material de consulta para profesionales y estudiantes que trabajen con SAS.

Macros SAS. Hacer 0 los valores missing de un dataset

La siguiente macro de SAS nos permite transformar los valores perdidos (missing) en valor 0 para todas las variables de un dataset. Para todas, para todas las numéricas. Esto es muy importante porque en ocasiones es necesario distinguir el valor 0 del valor missing(.). Pero puede ser muy práctica si vamos a emplear procedimientos que han de distinguir valores perdidos o, simplemente, si deseamos que nuestra tabla tenga otro aspecto.

La confianza en el sector financiero

La primera subasta del Fondo de Liquidez del gobierno Español ha sido un fracaso, esto no es una opinión, no llegar ni al 50% subastado es un fracaso. Una de las medidas estrellas contra la crisis financiera está teniendo muy poca aceptación en la Banca española. Sólo han acudido unas pocas entidades y algunas de ellas podemos considerar que su cúpula directiva es afín al gobierno que ha puesto en marcha esta medida. Entonces se plantean dos cuestiones fundamentales:

Truco Excel. Nuestra propia función redondear en Excel

Hay operaciones que pueden ser muy habituales de hacer con Excel y necesitaríamos una función propia que la realizara. A continuación vamos a plantear una situación en la que es especialmente útil crear una función específica y guardarla en el libro de macros personal para utilizarla en nuestras sesiones SAS. En este caso concreto vamos a crear una función que nos redondeé un número a 0 o 0.5, es decir, 6,3 valdría 6 y 6,7 valdría 6,5. Para realizarlo sin una función específica emplaríamos múltiples funciones de Excel, por ejemplo:

Macros SAS. Transformar un numérico a fecha

A continuación vamos a plantear una macro de SAS bastante sencilla que nos permitirá transformar valores numéricos del tipo 20080607, fechas en formato AAAAMMDD pero que son numéricas, a valores fecha en SAS que nos permitirán realizar operaciones. Siguiendo el sistema de todos los mensajes de AyD trabajaremos con ejemplos para estudiar su utilidad.

Partimos de dos fechas en formato AAAAMMDD y desamos realizar una diferencia entre ellas:

data _null_;

 y=20070101;

 m=20080110;

 dif=m-y; put dif;

run;

En el log obtenemos que la diferencia entre estas 2 fechas es 10009, necesitamos transformarlas en variables numéricas pero del tipo fecha. Tenemos múltiples posibilidades para realizar esta transformación, pero en este caso voy a emplear la función de creación de fecha en SAS MDY(mes,día,año). Para conseguir del valor AAAAMMDD el mes, el día y el año emplearemos las funciónes MOD para calcular el módulo e INT para obtener la parte entera de una operación:

Trabajo con fechas SAS. Funciones fecha

En las entregas anteriores del monográfico sobre fechas SAS hemos estudiado como almacena internamente las fechas el sistema y los formatos más prácticos que disponemos para visualizarlas. En esta última entrega veremos algunas de las funciones de fecha hora de las que dispone SAS. Las funciones las vamos a dividir en 4 grupos:

  • Funciones de extracción de fecha
  • Funciones de creación de fecha
  • Funciones de duración
  • Funciones de intervalo

Las funciones de extracción de fecha nos permiter «extraer» información de variables de fecha/hora, veamos un ejemplo para extraer la fecha y la hora de una variable fecha/hora:

Trabajo con fechas SAS. Formatos de fecha SAS más utilizados

En esta nueva entrega del monografico de fechas SAS vamos a estudiar algunos formatos. Un formato es la forma en la que vemos una variable. 17327 es un valor sin significado, pero el 20 de junio de 2007 es una fecha. En la anterior entrega estudiamos como SAS guardaba las fechas como variables numéricas, como el número de días transcurridos desde el 1 de enero de 1960. Las fechas/horas se guardaban como el número de segundos transcurridos. Con los distintos formatos fecha/hora nosotros podremos visualizar estas variables numéricas de SAS. Por ejemplo:

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 como se guardan internamente las variables fecha en SAS y como hacemos referencia a ellas dentro de nuestros pasos data o procedimientos. En SAS, las variables o son numéricas o son alfanuméricas, en el caso de las variables fecha se almacenan como numéricas y son el número de días respecto al 1 de enero de 1960. Las variables hora también son numéricas y se almacenan como el número de segundos transcurridos desde el 1 de enero de 1960 a las 0 horas. Ejecutemos el siguiente programa SAS:

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

Si deseamos ordenar alfabéticamente las variables de un conjunto de datos SAS porque puede falitarnos la realización de sumatorios de importes, saldos,… y el conjunto de datos SAS está desordenado os planteo una macro bien sencilla y que trabaja con una de las vistas más útiles de la SASHELP. La macro es bien sencilla y nos permite establecer que variables deseamos que aparezcan primero, selecciona los nombres de las variables, 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:

Truco SAS. Función para contar caracteres

Si deseamos contar cuantas veces aparece un caracter dentro de una cadena en SAS nos encontramos que no existe ninguna función de texto en SAS. Para ello podemos utilizar otras funciones de texto en SAS. La idea es determinar la longitud de la cadena con el caracter en cuestión y restarle la longitud de la cadena sin el caracter. 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:

Un detalle puede hacer que no te tomen en serio

Preocupado por la caida en bolsa de ING y sobre todo de Société Générale esta mañana he dado un paseo por la prensa nacional. De momento parece que ninguna entidad española va a tener los mismos problemas que otros gigantes europeos, muy a pesar de lo que diga Merrill Lynch. Navegando por otras noticias me he encontrado esta fotografia en El País:

detalles1.JPG

Una fosa común con restos de personas de un bando. Hasta aquí todo normal, pero miremos más la fotografía… Hay un detalle que hace que esta imagen pueda resultar motivo de burla. Miradla bien…