Data Step

Cómo agregar y sumar datos por grupo

Simon 10 vistas

En el procesamiento diario de datos, es muy frecuente tener que pasar de un nivel de detalle "transaccional" (varias líneas por cliente) a un nivel "sintético" (una línea por cliente con un total).

1. El Problema: Sumar saldos por cliente

El usuario dispone de un conjunto de datos que contiene números de clientes, fechas y montos (saldos). Un mismo cliente (Cust_1) aparece varias veces en diferentes fechas.


ClienteMontoFecha
Cust_1100.0001/01/2008
Cust_1150.0010/01/2008
Cust_1125.0011/01/2008

Objetivo: Crear una nueva tabla que contenga la suma de los montos para cada cliente.

  • Resultado esperado para Cust_1: 375.00

Note :
En la discusión original, se proporcionó una solución eficaz utilizando PROC REPORT. Aunque a menudo se utiliza para la visualización (impresión), este procedimiento es muy potente para generar tablas de salida.
1PROC REPORT DATA=cust nowd out=temp;
2 column cust_no bal;
3 define cust_no / group noprint;
4 define bal / analysis sum noprint;
5RUN;
Análisis del código :
out=temp: Esta es la opción clave. Indica a SAS© que no solo muestre el informe, sino que guarde el resultado en una tabla llamada temp.

column cust_no bal: Selecciona las columnas a utilizar.

define cust_no / group: Indica que la variable cust_no es la clave de agrupación (como un "GROUP BY" en SQL).

define bal / analysis sum: Indica que la variable bal debe ser analizada y sumada.
Note :
PROC SQL (Para los familiarizados con SQL)
Esta es a menudo el método más intuitivo si viene del mundo de las bases de datos relacionales.
1PROC SQL;
2 create TABLE temp_sql as
3 select cust_no, sum(bal) as Total_Balance
4 from cust
5 group BY cust_no;
6QUIT;
Nota: La instrucción nway es importante para mantener solo el nivel de síntesis más alto (por cliente) y evitar los totales globales.

Para resumir datos en SAS©:

  1. Utilice PROC REPORT si necesita flexibilidad y ya está construyendo un informe.

  2. Utilice PROC SQL si prefiere la sintaxis SQL estándar.

  3. Utilice PROC MEANS si el rendimiento en volúmenes muy grandes es su prioridad.

El consejo del experto: Como señala Cynthia, no dude en consultar la documentación de SAS© para las instrucciones OUTPUT (para PROC MEANS) o la opción OUT= (para TABULATE y REPORT). A menudo, ahí es donde reside la clave para transformar un informe visual en una tabla de datos.