El procedimiento PROC MEANS es a menudo el primer reflejo del analista. Su función principal es calcular estadísticas descriptivas para variables, ya sea sobre el conjunto de las observaciones o por grupos.
Sus capacidades incluyen:
La estimación de cuantiles (incluida la mediana).
El cálculo de los límites de confianza para la media.
La identificación de valores extremos.
La realización de tests de Student (t-test).
Particularidad principal: Por defecto, PROC MEANS muestra sus resultados directamente en la ventana de salida (Output window).
PROC SUMMARY: La Potencia Discreta
Técnicamente, el procedimiento PROC SUMMARY es idéntico a PROC MEANS en términos de cálculos estadísticos. Ofrece las mismas opciones de tratamiento.
La diferencia clave: A diferencia de MEANS que prioriza la visualización, SUMMARY está diseñado para escribir sus resultados en una tabla de salida (dataset). No muestra nada por defecto en la ventana de resultados, lo que lo hace ideal para preparar datos intermedios sin sobrecargar los informes.
PROC TABULATE: El Formato Avanzado
El procedimiento PROC TABULATE retoma los conceptos de MEANS y SUMMARY pero va mucho más allá en materia de presentación. Está especializado en la visualización de estadísticas descriptivas en forma de tablas jerárquicas.
Sus principales ventajas:
Flexibilidad: Permite clasificar los valores de las variables y establecer relaciones jerárquicas complejas entre ellas.
Doble Salida: Puede enviar los resultados a la ventana de salida y/o a una tabla de datos.
Formato: Ofrece un control total sobre las etiquetas (labels) y el formato de las estadísticas generadas.
El código a continuación ilustra la diferencia de salida. PROC MEANS muestra el resultado, mientras que PROC SUMMARY crea una tabla llamada WORK.summaryout.
1
/* Affichage direct des statistiques */
proc means data=sashelp.cars;
var msrp invoice;
run;
/* Création d'une table de sortie */
proc summary data=sashelp.cars;
var msrp invoice;
OUTPUT out=WORK.summaryout (LABEL="Table de sortie PROC SUMMARY pour SASHELP.CARS");
run;
1
/* Affichage direct des statistiques */
2
PROC MEANSDATA=sashelp.cars;
3
var msrp invoice;
4
RUN;
5
6
/* Création d'une table de sortie */
7
PROC SUMMARYDATA=sashelp.cars;
8
var msrp invoice;
9
OUTPUT out=WORK.summaryout (LABEL="Table de sortie PROC SUMMARY pour SASHELP.CARS");
10
RUN;
Uso de TABULATE para una tabla estructurada
Aquí, creamos una tabla que cruza el tipo de vehículo (en fila) con estadísticas de peso y distancia entre ejes (en columna).
PROC TABULATE
DATA=SASHELP.CARS
OUT=WORK.tabulateout (LABEL="Table de sortie PROC TABULATE pour SASHELP.CARS")
FORMAT=comma10.2;
VAR Weight Wheelbase;
CLASS Type / ORDER=freq MISSING;
TABLE /* Dimension Ligne */
Type,
/* Dimension Colonne */
N
Weight * Range
Wheelbase * Mean;
run; quit;
1
PROC TABULATE
2
DATA=SASHELP.CARS
3
OUT=WORK.tabulateout (LABEL="Table de sortie PROC TABULATE pour SASHELP.CARS")
4
FORMAT=comma10.2;
5
VAR Weight Wheelbase;
6
CLASS Type / ORDER=freq MISSING;
7
8
TABLE/* Dimension Ligne */
9
Type,
10
/* Dimension Colonne */
11
N
12
Weight * Range
13
Wheelbase * Mean;
14
RUN; QUIT;
Ir más allá: Coloreado condicional con TABULATE
Una de las grandes ventajas de PROC TABULATE es su capacidad para utilizar formatos personalizados para resaltar datos (ej: código de color "semáforo").
/* Définition du format de couleur */
PROC FORMAT;
VALUE watchit
0 - 20000 = 'Green'
20001 - 30000 = 'Orange'
30001 - 50000 = 'Blue'
50001 - 60000 = 'Purple'
60001 - high = 'Red';
run;
/* Application du format comme couleur de fond (foreground) */
PROC TABULATE data=sashelp.cars S=[foreground=watchit.]
FORMAT=dollar10.2
OUT=WORK.tabulatecolor (LABEL="Table de sortie colorée pour SASHELP.CARS");
CLASS type cylinders / MISSING;
VAR invoice;
TABLE type ALL,
Invoice * mean;
run;
1
/* Définition du format de couleur */
2
PROC FORMAT;
3
VALUE watchit
4
0 - 20000 = 'Green'
5
20001 - 30000 = 'Orange'
6
30001 - 50000 = 'Blue'
7
50001 - 60000 = 'Purple'
8
60001 - high = 'Red';
9
RUN;
10
11
/* Application du format comme couleur de fond (foreground) */
OUT=WORK.tabulatecolor (LABEL="Table de sortie colorée pour SASHELP.CARS");
15
CLASS type cylinders / MISSING;
16
VAR invoice;
17
18
TABLE type ALL,
19
Invoice * mean;
20
RUN;
Síntesis Comparativa
Para ayudarle a elegir el procedimiento correcto según sus necesidades, aquí tiene una tabla resumen de las principales diferencias funcionales y su disponibilidad en las interfaces gráficas:
Aunque PROC MEANS, SUMMARY y TABULATE son similares en las estadísticas descriptivas que generan, se distinguen por la naturaleza de sus salidas y su flexibilidad.
Si PROC MEANS es ideal para una verificación rápida y PROC SUMMARY para la creación de tablas de datos, PROC TABULATE ofrece el mayor control. Su versatilidad a menudo lo convierte en la mejor opción para escenarios que requieren una presentación cuidada y jerarquizada de los datos.
Important Disclaimer
The codes and examples provided on WeAreCAS.eu are for educational purposes. It is imperative not to blindly copy-paste them into your production environments. The best approach is to understand the logic before applying it. We strongly recommend testing these scripts in a test environment (Sandbox/Dev). WeAreCAS accepts no responsibility for any impact or data loss on your systems.
SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration. WeAreCAS is an independent community site and is not affiliated with SAS Institute Inc.
This site uses technical and analytical cookies to improve your experience.
Read more.