Promedio de 'n' filas de una columna basado en una condición de otra columna -Hola a todos,
Estoy buscando un promedio de 'n' filas (en el ejemplo adjunto, n == 3) basado en otros coulmn (- "Customer_ID"). Si mi número de fila para cada grupo (cliente) es un multiplicador entero de 'n', es decir, [Fila == Constante entera xn]. Mi fórmula básica funciona bien. Pero si Row! = Integer Constant xn, toma las filas restantes de otro grupo. Lo que me está dando resultados incorrectos.
Lo que quiero -
Mejor caso: calcule el promedio de 'n' filas en una especie de subconjunto de los datos basados en Cutomer_ID y para las últimas filas restantes coloque el valor promedio del valor promedio anterior.
De lo contrario, deje los valores vacíos como están.
Intenté poner: Customer_ID! = Lag (: Customer_ID, -2) pero no funcionó para mí. Puedo dividir la tabla en Customer_ID y luego hacer el cálculo, pero hay más de 5000 ID y alrededor de 20 columnas para realizar el promedio. ¡No parece la mejor idea!
¿Alguna ayuda por favor?
Gracias.

ScriptingRe: promedio de 'n' filas de una columna basado en una condición de otra columna -Aquí está la fórmula que se me ocurrió.

If( Row() == 1 | :Customer_ID != Lag( :Customer_ID ),
count = 0
);
If( count == 3, count = 0 );
count = count + 1;
If(
count == 1,
currentAvg = Col Moving Average( :Value, 1, before = 0, after = 2, :Customer_ID );
display = currentAvg;,
:Customer_ID == Lag( :Customer_ID, -2 ), display = .,
display = currentAvg
);
display;
¡Debe tomarse el tiempo para leer la Guía de secuencias de comandos que se encuentra en la Biblioteca de documentación de JMP disponible en el menú desplegable Ayuda!
Re: promedio de 'n' filas de una columna basado en una condición de otra columna -No tengo idea de si esto funcionará en todos los casos, pero funciona con los datos de ejemplo proporcionados:
If(Col Cumulative Sum(1, :Customer_ID) > Col Number(:Value, :Customer_ID) - 1,
Lag(Col Moving Average(:Value, 1, 0, 2, 0, :Customer_ID), 1),
If(Modulo(Col Cumulative Sum(1, :Customer_ID), 3) == 1,
Col Moving Average(:Value, 1, 0, 2, 0, :Customer_ID),
.
)
)
Compruebe lo que hacen cada una de las funciones / fórmulas desde el índice de secuencias de comandos / la guía de secuencias de comandos mientras comprobar el resultado de la subexpresión seleccionada del editor de fórmulas para comprender lo que está haciendo, ya que es bastante complicado:
