domingo, 6 de noviembre de 2016

Detectar nulos en tablas SAS

Es frecuente la necesidad de validar y gestionar la existencia de nulos en los datos que manejamos en los procesos de análisis de reporting.


A continuación añadimos un pequeño script SAS en el que aparecen ejemplos de asignación de nulos a columnas de tablas o de la validación de los nulos. En el ejemplo se ven los casos en los que el tratamiento de nulos difiere si la columna es numérica o alfanumérica y se muestran ejemplos de funciones útiles tales como: missing(), nmiss() y cmiss(). Igualmente se muestra alguna diferencia que existe entre validar nulos en una sentencia condicional if o en una clausula where. Esperamos sea de utilidad y nos sirva como breve compendio que nos evite los problemas comunes en la detección de nulos.

/* Validar nulos: diferentes opciones */

/* Tabla con campos nulos. Asignación de nulos */

data tabinput;
length campo1 $10 campo2 8.;
campo1 = ""; /* asignar nulos en alfanuméricos */
campo2 = 3;
output;
campo1 = "b";
campo2 = .; /* asignar nulo en numéricos */
output;
campo1 = "a";
campo2 = 5;
output;
run;

data validar_nulos;
set tabinput;
where campo1 is missing; /* funciona en un where pero no en un if */
run;

data validar_nulos;
set tabinput;
where campo1 is null; /* funciona en un where pero no en un if */
run;

data validar_nulos;
set tabinput;
if campo1 eq ""; /* validar nulos en alfanuméricos */
run;


data validar_nulos;
set tabinput;
if campo2 eq .; /* validar nulos en numéricos */
run;

data validar_nulos;
set tabinput;
if missing(campo1); /* función missing valida para alfanuméricos y numéricos */
run;

data validar_nulos;
set tabinput;
if nmiss(campo2) = 1 ; /* contador de missings valida para numéricos */
run;

data validar_nulos;
set tabinput;
if cmiss(campo1) = 1 ; /* contador de missings valida para numéricos y alfanuméricos */
run;

Más info en:

Formación SAS

2 comentarios:

  1. Desearía informacion de vuestros cursos de SAS.
    Saber si son necesarios conocimientos previos y si hay descuentos para personas en paro. También saber si teneís acuerdos con empresas o bolsa de empleo. Ramón Mtez Gracias

    ResponderEliminar
  2. Gracias por tu interés Ramón, efectivamente tenemos un descuento del 40% para desempleados.
    No es necesario tener conocimientos iniciales en SAS, aunque es útil conocer a nivel básico el lenguaje SQL.
    Hay empresas que nos solicitan perfiles SAS y algunas personas que han hecho este curso les hemos facilitado una entrevista con alguna de estas empresas, alguna de ellas han pasado la entrevista y
    se incorporaron a la empresa.
    Digamos que nosotros enfocamos la formación a su uso en proyectos
    y a quien lo desee se le facilitan contactos en empresas que demandan perfiles SAS para concertar entrevistas.

    Resto de la info:

    En modalidad intensivo fin de semana (viernes tarde + sábado mañana): 20/21 Enero y 27/28 Enero 2017 . 20h

    Profesorado: Consultores senior Business Intelligence ( > 15 años experiencia) con dilatada experiencia en SAS

    Localización: Madrid (C/Marqués de la Ahumada, 7 zona metro Diego de León). Precio: 500 euros (descuento 40% para desempleados)

    Es una formación muy práctica y el objetivo es conocer mediante la introducción de conceptos y la realización de ejercicios prácticos la herramienta SAS/Enterprise Guide y la programación SAS/BASE.

    ResponderEliminar