aggregation

aggregate

Descripción

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.

aggregation.aggregate { align="BEGINNING" | "ENDING" | "MIDDLE", bin={double-1, double-2, ...}, casOut={...}, contribute="variable-name", contributeColumnLabel="string", contributeColumnName="string", contributeDelimiter="string", contributeTrim=TRUE | FALSE, contributeUnroll=TRUE | FALSE, copyVars={"variable-name-1", "variable-name-2", ...}, doESP=TRUE | FALSE, edgeId="variable-name", exclnpwgt=TRUE | FALSE, excludeSelf=TRUE | FALSE, freq="variable-name", freqStrict=TRUE | FALSE, groupByLimit=64-bit-integer, groupedIntervalOutput=TRUE | FALSE, id="variable-name", idEnd=double, idOutputName="string", idRange={double-1, double-2, ...}, idStart=double, includeEmptyInterval=TRUE | FALSE, includeMissing=TRUE | FALSE, inputs={{...}, {...}, ...}, interval="string", jumpingWindow=TRUE | FALSE, keepRecord=TRUE | FALSE, keepRecordId=TRUE | FALSE, modeSingle=TRUE | FALSE, offset=integer, partKey={"string-1", "string-2", ...}, pctlDef=integer, pti=double, ptw=double, raw=TRUE | FALSE, saveGroupbyFormat=TRUE | FALSE, saveGroupbyRaw=TRUE | FALSE, saveVariableColumn=TRUE | FALSE, saveVariableSpecification=TRUE | FALSE, subBinOffset=double, subBinWidth=double, subInterval="string", table={...}, varSpecs={{...}, {...}, ...}, weight="variable-name", windowBin={double-1, double-2, ...}, windowInt="string", windowOffset=integer, windowSubBinOffset=double, windowSubBinWidth=double, windowSubInt="string" };
Parámetros
ParámetroDescripción
alignEspecifica la alineación del valor representativo con respecto a un intervalo o contenedor.
binEspecifica los valores mínimo y máximo de un contenedor.
casOutEspecifica la configuración para una tabla de salida.
contributeCuando el parámetro doESP es True, puede especificar una variable cuyos valores dentro de cada intervalo de agregación se registran.
contributeColumnLabelEspecifica un valor para anular la etiqueta de la variable de contribución.
contributeColumnNameEspecifica un valor para anular el nombre de la variable de contribución.
contributeDelimiterEspecifica un delimitador que se utiliza entre los valores concatenados de la variable de contribución.
contributeTrimCuando se establece en True, se eliminan los espacios en blanco iniciales y finales del valor formateado de la variable de contribución.
contributeUnrollCuando se establece en True, cada valor bruto de la variable de contribución agrega una fila a la tabla de resultados.
copyVarsEspecifica las variables que se copiarán de la tabla de entrada a la tabla de salida.
doESPCuando se establece en True, la acción puede aprovechar la partición y el ordenamiento en la tabla de entrada.
edgeIdEspecifica 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.
exclnpwgtCuando 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.
excludeSelfCuando se establece en True y el parámetro doESP es True, la agregación excluye la contribución de la observación actual.
freqEspecifica una variable numérica cuyos valores se utilizan como la frecuencia de los valores de la variable de análisis.
freqStrictRelacionado con el agregador MODE. Controla cómo se manejan los valores de frecuencia no positivos y decimales.
groupByLimitEspecifica el número máximo de niveles en un conjunto de group-by.
groupedIntervalOutputCuando se establece en True, guarda solo uno de los mismos intervalos agregados con respecto al último valor de Id.
idEspecifica una variable numérica que identifica la marca de tiempo asociada con cada observación en la tabla de entrada.
idEndEspecifica el valor máximo inclusivo de la variable ID a considerar en el análisis.
idOutputNameEspecifica el nuevo nombre de la variable ID en la tabla de salida.
idRangeEspecifica los valores mínimo y máximo inclusivos de la variable ID a considerar en el análisis.
idStartEspecifica el valor mínimo inclusivo de la variable ID a considerar en el análisis.
includeEmptyIntervalControla si los intervalos con un valor faltante para la variable ID se incluyen en la salida.
includeMissingControla si las observaciones con valores faltantes se incluyen en el análisis.
inputsEspecifica las variables de entrada a utilizar en el análisis.
intervalEspecifica el período de tiempo para la acumulación de observaciones.
jumpingWindowEspecifica 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.
keepRecordCuando se establece en True, se mantiene el valor original de la variable ID de cada observación sin realizar la alineación de intervalo.
keepRecordIdCuando 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.
modeSingleRelacionado con el agregador MODE. Controla el valor devuelto cuando todos los valores distintos tienen una frecuencia de 1.
offsetEspecifica el desplazamiento de cada intervalo.
partKeyEspecifica una clave de partición para que los resultados se calculen solo para esa partición.
pctlDefEspecifica cómo calcular las estadísticas de cuantiles (percentiles).
ptiEspecifica el valor de tiempo en el que finaliza la agregación dentro de un intervalo o contenedor.
ptwEspecifica el subintervalo con respecto a cada intervalo de ventana.
rawCuando se establece en True, se utilizan los valores brutos de las variables en el parámetro de entrada.
saveGroupbyFormatControla si los valores formateados de las variables groupBy se copian a los resultados.
saveGroupbyRawControla si los valores brutos de las variables groupBy se copian a los resultados.
saveVariableColumnControla si el nombre de la variable de análisis se incluye en una columna 'Column' en los resultados.
saveVariableSpecificationControla si los resultados incluyen una columna 'Variable Specification' para identificar la especificación varSpecs que produjo el resultado.
subBinOffsetEspecifica un desplazamiento desde el inicio de un contenedor.
subBinWidthEspecifica el ancho del subcontenedor dentro de un contenedor.
subIntervalEspecifica 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.
tableEspecifica la tabla de entrada para el análisis.
varSpecsEspecifica la variable a agregar y la configuración para el agregador.
weightEspecifica 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.
windowBinEspecifica los valores mínimo y máximo de un contenedor de ventana.
windowIntEspecifica la ventana de tiempo para la acumulación de observaciones con respecto a cada intervalo de tiempo.
windowOffsetEspecifica el desplazamiento de cada intervalo de ventana.
windowSubBinOffsetEspecifica el punto de inicio dentro de un contenedor de ventana en el que se agregan los valores de los registros.
windowSubBinWidthEspecifica el ancho del subcontenedor dentro de cada windowBin.
windowSubIntEspecifica 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.
Creación de Datos de Ejemplo

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.

¡Copiado!
1 
2PROC CASUTIL;
3load
4DATA=sashelp.cars outcaslib="casuser" casout="CARS_AGG" replace;
5QUIT;
6 

Ejemplos

Este ejemplo muestra cómo agregar datos en columnas seleccionadas. Se calculan las estadísticas de resumen para las variables 'Horsepower' y 'MSRP'.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 aggregation.aggregate TABLE={name='CARS_AGG'},
3 varSpecs={{name='Horsepower'}, {name='MSRP'}};
4RUN;
Resultado :
La tabla de resultados muestra las estadísticas de resumen (N, Min, Max, Sum, Mean, Std Dev) para las variables 'Horsepower' y 'MSRP' de la tabla 'CARS_AGG'.

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.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 aggregation.aggregate TABLE={name='CARS_AGG', groupBy={'Type'}},
3 varSpecs={{name='Horsepower'}, {name='MSRP'}};
4RUN;
Resultado :
La tabla de resultados muestra las estadísticas de resumen para 'Horsepower' y 'MSRP', con una fila para cada categoría de la variable 'Type' (por ejemplo, Sedan, SUV, Sports).

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.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
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'}};
6run; */
Resultado :
El resultado sería una tabla con los ingresos ('Revenue') totales sumados para cada año presente en los datos.

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.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
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'}};
7run; */
Resultado :
La tabla de resultados mostraría, para cada mes, el ingreso medio de los últimos tres meses, proporcionando una vista de la tendencia.

FAQ

¿Qué hace la acción `aggregate`?
¿Para qué se utiliza el parámetro `table`?
¿Cómo se pueden especificar las variables a agregar y sus agregadores?
¿Qué especifica el parámetro `interval`?
¿Qué hace el agregador `SUMMARY`?
¿Se pueden agrupar los datos antes de la agregación?

Escenarios asociados

Caso de uso
Análisis de Ventas Minoristas por Tienda y Categoría

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...

Caso de uso
Análisis de Sensores IoT con Datos Faltantes en Series Temporales

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...

Caso de uso
Agregación de Alto Volumen de Datos Financieros (OHLC)

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...