La acción `aggregate` del conjunto de acciones `aggregation` en SAS Viya se utiliza para realizar agregaciones en variables seleccionadas de una tabla en memoria de CAS. Permite calcular una amplia gama de estadísticas de resumen, como la media, la suma, el mínimo, el máximo, y muchas otras. Es especialmente útil para resumir grandes volúmenes de datos, agrupar resultados por variables categóricas y preparar datos para análisis posteriores o informes.
| Parámetro | Descripción |
|---|---|
| align | Especifica la alineación del valor representativo con respecto a un intervalo o contenedor. |
| bin | Especifica los valores mínimo y máximo de un contenedor. |
| casOut | Especifica la configuración para una tabla de salida. |
| contribute | Cuando el parámetro doESP es True, puede especificar una variable cuyos valores dentro de cada intervalo de agregación se registran. |
| contributeColumnLabel | Especifica un valor para anular la etiqueta de la variable de contribución. |
| contributeColumnName | Especifica un valor para anular el nombre de la variable de contribución. |
| contributeDelimiter | Especifica un delimitador que se utiliza entre los valores concatenados de la variable de contribución. |
| contributeTrim | Cuando se establece en True, se eliminan los espacios en blanco iniciales y finales del valor formateado de la variable de contribución. |
| contributeUnroll | Cuando se establece en True, cada valor bruto de la variable de contribución agrega una fila a la tabla de resultados. |
| copyVars | Especifica las variables que se copiarán de la tabla de entrada a la tabla de salida. |
| doESP | Cuando se establece en True, la acción puede aprovechar la partición y el ordenamiento en la tabla de entrada. |
| edgeId | Especifica una variable numérica cuyos valores se utilizan para ordenar los valores de cada especificación de varSpecs que utiliza los agregadores FIRST, LAST, FNE o LNE. |
| exclnpwgt | Cuando se establece en True y se especifica una variable de ponderación, las observaciones con un valor de ponderación no positivo se excluyen del análisis. |
| excludeSelf | Cuando se establece en True y el parámetro doESP es True, la agregación excluye la contribución de la observación actual. |
| freq | Especifica una variable numérica cuyos valores se utilizan como la frecuencia de los valores de la variable de análisis. |
| freqStrict | Relacionado con el agregador MODE. Controla cómo se manejan los valores de frecuencia no positivos y decimales. |
| groupByLimit | Especifica el número máximo de niveles en un conjunto de group-by. |
| groupedIntervalOutput | Cuando se establece en True, guarda solo uno de los mismos intervalos agregados con respecto al último valor de Id. |
| id | Especifica una variable numérica que identifica la marca de tiempo asociada con cada observación en la tabla de entrada. |
| idEnd | Especifica el valor máximo inclusivo de la variable ID a considerar en el análisis. |
| idOutputName | Especifica el nuevo nombre de la variable ID en la tabla de salida. |
| idRange | Especifica los valores mínimo y máximo inclusivos de la variable ID a considerar en el análisis. |
| idStart | Especifica el valor mínimo inclusivo de la variable ID a considerar en el análisis. |
| includeEmptyInterval | Controla si los intervalos con un valor faltante para la variable ID se incluyen en la salida. |
| includeMissing | Controla si las observaciones con valores faltantes se incluyen en el análisis. |
| inputs | Especifica las variables de entrada a utilizar en el análisis. |
| interval | Especifica el período de tiempo para la acumulación de observaciones. |
| jumpingWindow | Especifica que la agregación ocurre sobre una ventana de tiempo que puede contener múltiples intervalos y se reinicia cuando transcurre el rango de tiempo especificado. |
| keepRecord | Cuando se establece en True, se mantiene el valor original de la variable ID de cada observación sin realizar la alineación de intervalo. |
| keepRecordId | Cuando se establece en True y el parámetro doESP es True, se mantiene el valor ID original de cada observación sin realizar la alineación de intervalo. |
| modeSingle | Relacionado con el agregador MODE. Controla el valor devuelto cuando todos los valores distintos tienen una frecuencia de 1. |
| offset | Especifica el desplazamiento de cada intervalo. |
| partKey | Especifica una clave de partición para que los resultados se calculen solo para esa partición. |
| pctlDef | Especifica cómo calcular las estadísticas de cuantiles (percentiles). |
| pti | Especifica el valor de tiempo en el que finaliza la agregación dentro de un intervalo o contenedor. |
| ptw | Especifica el subintervalo con respecto a cada intervalo de ventana. |
| raw | Cuando se establece en True, se utilizan los valores brutos de las variables en el parámetro de entrada. |
| saveGroupbyFormat | Controla si los valores formateados de las variables groupBy se copian a los resultados. |
| saveGroupbyRaw | Controla si los valores brutos de las variables groupBy se copian a los resultados. |
| saveVariableColumn | Controla si el nombre de la variable de análisis se incluye en una columna 'Column' en los resultados. |
| saveVariableSpecification | Controla si los resultados incluyen una columna 'Variable Specification' para identificar la especificación varSpecs que produjo el resultado. |
| subBinOffset | Especifica un desplazamiento desde el inicio de un contenedor. |
| subBinWidth | Especifica el ancho del subcontenedor dentro de un contenedor. |
| subInterval | Especifica un intervalo más pequeño para controlar la alineación del período de tiempo dentro de cada intervalo para la agregación de observaciones. |
| table | Especifica la tabla de entrada para el análisis. |
| varSpecs | Especifica la variable a agregar y la configuración para el agregador. |
| weight | Especifica una variable numérica cuyos valores se utilizan como ponderación de los valores de la variable de análisis numérica cuando el agregador es SUMMARY. |
| windowBin | Especifica los valores mínimo y máximo de un contenedor de ventana. |
| windowInt | Especifica la ventana de tiempo para la acumulación de observaciones con respecto a cada intervalo de tiempo. |
| windowOffset | Especifica el desplazamiento de cada intervalo de ventana. |
| windowSubBinOffset | Especifica el punto de inicio dentro de un contenedor de ventana en el que se agregan los valores de los registros. |
| windowSubBinWidth | Especifica el ancho del subcontenedor dentro de cada windowBin. |
| windowSubInt | Especifica un intervalo más pequeño para controlar la alineación del subperíodo de tiempo dentro de cada intervalo de ventana para la agregación de observaciones. |
Se carga la tabla `SASHELP.CARS` en la memoria de CAS con el nombre `CARS_AGG`. Esta tabla contiene información sobre varios modelos de automóviles y se utilizará para los ejemplos de agregación.
| 1 | |
| 2 | PROC CASUTIL; |
| 3 | load |
| 4 | DATA=sashelp.cars outcaslib="casuser" casout="CARS_AGG" replace; |
| 5 | QUIT; |
| 6 |
Este ejemplo muestra cómo agregar datos en columnas seleccionadas. Se calculan las estadísticas de resumen para las variables 'Horsepower' y 'MSRP'.
| 1 | PROC CAS; |
| 2 | aggregation.aggregate TABLE={name='CARS_AGG'}, |
| 3 | varSpecs={{name='Horsepower'}, {name='MSRP'}}; |
| 4 | RUN; |
Este ejemplo muestra cómo agregar datos para las variables 'Horsepower' y 'MSRP' agrupadas por la variable 'Type'. Esto permite obtener estadísticas de resumen para cada tipo de vehículo.
| 1 | PROC CAS; |
| 2 | aggregation.aggregate TABLE={name='CARS_AGG', groupBy={'Type'}}, |
| 3 | varSpecs={{name='Horsepower'}, {name='MSRP'}}; |
| 4 | RUN; |
Este ejemplo (hipotético, ya que CARS no tiene una variable de fecha) muestra cómo agregar datos por intervalos de tiempo. Si tuviéramos una variable 'Sales_Date', podríamos agrupar las ventas por 'YEAR' (año) para analizar las tendencias anuales.
| 1 | /* proc cas; |
| 2 | aggregation.aggregate table={name='SALES_DATA', groupBy={'Sales_Date'}}, |
| 3 | id='Sales_Date', |
| 4 | interval='YEAR', |
| 5 | varSpecs={{name='Revenue', agg='SUM'}}; |
| 6 | run; */ |
Este ejemplo (hipotético) muestra cómo realizar una agregación de ventana móvil. Se podría calcular la media móvil de los ingresos ('Revenue') durante un período de tres meses ('MONTH') para suavizar las fluctuaciones a corto plazo.
| 1 | /* proc cas; |
| 2 | aggregation.aggregate table={name='SALES_DATA', groupBy={'Sales_Date'}}, |
| 3 | id='Sales_Date', |
| 4 | interval='MONTH', |
| 5 | windowInt='3*MONTH', |
| 6 | varSpecs={{name='Revenue', agg='MEAN'}}; |
| 7 | run; */ |
Una cadena de supermercados necesita un resumen diario del rendimiento de sus ventas. El objetivo es agregar los datos de transacciones para calcular los ingresos totales, el va...
Una planta de fabricación monitorea la temperatura de sus máquinas a través de sensores IoT. Los datos se transmiten cada segundo, pero a veces hay fallos de transmisión que gen...
Una firma de análisis financiero necesita procesar un gran volumen de datos de transacciones de acciones (tick data) para construir gráficos de velas (OHLC - Open, High, Low, Cl...