Cómo calcular promedios móviles para filas seleccionadas¡Hola a todos!
Estoy intentando escribir un script que calcule promedios móviles utilizando filas seleccionadas en una tabla.
Para preparar el escenario:
Tengo una tabla de datos (ejemplo adjunto) con múltiples ejecuciones (ID única) de un proceso de 3 etapas (A, B, C). Hay un valor informado para cada etapa y estos valores se suman para dar un valor total para cada ocasión. Me gustaría tener una columna que informe un promedio móvil del total. He revisado algunas de las discusiones y he obtenido algunos buenos consejos sobre cómo hacer esto (es decir, promedios móviles para cada ID única... ESTE ejemplo me ayudó y la fórmula está en : Promedio móvil (ID única).
El siguiente paso que me gustaría realizar es incluir SOLO un subconjunto de las ejecuciones en esta evaluación. Las ejecuciones están resaltadas en rojo y el resultado deseado (en este caso, el promedio móvil de solo tres ocasiones) está en :Resultado deseado.
Tengo problemas con el script para seleccionar el subconjunto de ejecuciones para la evaluación.
Además, soy relativamente nuevo en JSL y también agradecería sugerencias sobre cómo llegar al resultado final de una manera más limpia y eficiente.
¡Gracias de antemano por tu ayuda!
Cristóbal
Automatización y scriptingAnálisis y modelado de datos básicosCombinación y limpieza de datosRe: Cómo calcular promedios móviles para filas seleccionadas¿En qué se basa la selección de esas tres filas?
Re: Cómo calcular promedios móviles para filas seleccionadasjarmo,
Este proceso se ejecuta en dos configuraciones diferentes: una configuración es para uso de desarrollo y la otra para uso "oficial" (si eso tiene sentido).
y esas tres líneas representan lo último. Para el promedio móvil no quiero incluir las ejecuciones de desarrollo. Sin embargo, SÍ quiero incluir todos los datos en la hoja de seguimiento/tendencias, de modo que tenga una "única fuente de verdad" que represente todas las configuraciones/operadores/etc. La hoja adjunta solo representa un conjunto mínimo de información para ayudar a abordar la pregunta de la comunidad JMP.
He estado creando conjuntos de datos similares a lo largo de los años y recientemente comencé a trabajar con JSL para intentar desarrollar flujos de trabajo más eficientes. Sin embargo, no tengo experiencia en codificación, por lo que todavía estoy en una curva de aprendizaje empinada. ¡Este grupo ha sido realmente útil!
Cristóbal
Re: Cómo calcular promedios móviles para filas seleccionadasMe pregunto cómo elegir las filas de interés correctas. ¿Se hace en función del color o de las celdas de columnas específicas? ¿Se seleccionan las filas manualmente y luego se calcula el promedio móvil a partir de esas filas seleccionadas?
Por ejemplo, podría proporcionar alguna columna de agrupación y luego utilizarla.
If(!Is Missing(:Group),
Col Moving Average(As Column("Total (Sum of Stages for each Unique ID)"), 1, :Group),
.
)

También puede crear un subconjunto solo de esas filas (quizás una vinculada) para hacer el cálculo aún más simple (Editar: esto no funcionará con un subconjunto vinculado aunque parezca que lo hace en la vista previa)
Col Moving Average(As Column("Total (Sum of Stages for each Unique ID)"), 1)

Col Promedio Móvil(nombre, opciones, ) Puede ser una buena lectura ya que es una de las funciones de fórmula más confusas.
Re: Cómo calcular promedios móviles para filas seleccionadasAhhh...ahora entiendo tu pregunta.
Estaba pensando en seleccionar filas donde :Para incluir == Sí. ¿Hay una mejor manera?
Leeré esa documentación... ¡La función me ha confundido, seguro!
Cristóbal
Re: Cómo calcular promedios móviles para filas seleccionadasAh... ¿Entonces quieres calcular el promedio móvil de columnas para incluir filas pero solo informarlo en la última fila de cada ID única?

Tenga en cuenta que esto calculará el promedio móvil utilizando TODOS los valores en los grupos, no solo los últimos valores, sino que lo informará en la última línea (elimine la declaración if para ver lo que realmente hace).
If(:To Include == "Yes" & Row() == Col Max(Row(), :Unique ID),
Col Moving Average(:"Total (Sum of Stages for each Unique ID)"n, 1, :To Include),
.
)

También puedes realizar el cálculo basándose solo en las últimas filas, pero el cálculo será cada vez más lento y más difícil de leer.
If(:To Include == "Yes" & Row() == Col Max(Row(), :Unique ID),
Col Moving Average(
If(Row() == Col Max(Row(), :Unique ID),
:"Total (Sum of Stages for each Unique ID)"n,
.
),
1,
:To Include
),
.
)
Son más fáciles de entender cuando se dividen en muchas fórmulas independientes.
Re: Cómo calcular promedios móviles para filas seleccionadas¡Muchas gracias! Voy a empezar a jugar con esto.
C