Fórmula de columna usando datos de otras filas¡Hola! Tengo una tabla de datos de estilo de base de datos que almacena datos de un montón de pasos de proceso. Cada fila representa una muestra de un paso de proceso dado, y en esa fila hay una referencia a la muestra principal. La muestra principal es del mismo material, pero en el paso de proceso anterior. Principalmente estoy interactuando con esta tabla de base de datos a través de jmpapp, por lo que las secuencias de comandos son una forma aceptable de manipular los datos.
Dentro de esta tabla, quiero calcular algunos parámetros sobre cada muestra, incluido cómo ha cambiado esa muestra en comparación con la muestra principal. Algunos de esos parámetros podrían calcularse como:
datos medidos del niño * datos medidos del padre .
Otros parámetros pueden calcularse de la siguiente manera (donde el valor calculado del padre sería similar a la ecuación anterior):
datos medidos del niño * valor calculado del padre
Tengo una solución que funciona actualmente para esto, pero es muy lenta y requiere muchas llamadas a "Reejecutar fórmulas".
Entonces, antes de describir mi solución actual, me gustaría obtener algunas recomendaciones sobre las mejores formas de lograr esto. ¡Tal vez estoy hablando de la estructura de datos de la manera incorrecta! Si es posible, sería increíble si pudiera mantener los cálculos dentro de esta tabla.
A continuación se muestra una imagen que muestra la estructura actual de los datos y cómo se debe conectar en cascada de padre a hijo para hacer todas las operaciones matemáticas adecuadas.
¡Gracias por tu ayuda!

Re: Fórmula de columna usando datos de otras filasLas estadísticas de resumen de columna en el Editor de fórmulas pueden tomar una o más variables de agrupación.
Col Mean( :Parent Data, :ParentID )
Le dará la media de los datos en Parent Data agrupados por ParentID.
Re: Fórmula de columna usando datos de otras filasVea este enlace usando una instrucción where con fila() y subíndices
Coincidencia de índice JMP
Pero se complica cuanto más intentas usarlo... Encuentro que para cosas como esta es más rápido/más fácil simplemente usar Excel y escribir un script de importación de datos.
Re: Fórmula de columna usando datos de otras filas@Peter_Hersh , sí, eso tiene sentido, y es cómo lo estoy haciendo actualmente. Funciona bien, pero debido a la forma en que tengo los datos agrupados, actualmente estoy recorriendo diferentes subconjuntos de datos, lo que lleva bastante tiempo. Además, sería bueno que las columnas de datos principales se actualizaran cada vez que se actualicen las filas principales, razón por la cual esperaba que se pudiera usar una fórmula de columna. Si tengo que seguir con la solución de subconjunto y actualización, podría usar un script "Proliferar datos principales" en la tabla o algo así.
@DonMcCormack , Las relaciones padre/hijo se definen simplemente usando la columna "ParentID". Cada fila incluye el ID de la muestra así como el ID de los padres, por lo que, esencialmente, los niños tienen que buscar en la cadena hasta los padres para encontrar los datos que necesitan.
Descubrí que es posible usar una fórmula de columna como esta para obtener los datos principales, pero estas fórmulas deben ejecutarse varias veces para que los datos puedan descender en cascada a través de las filas/columnas dependientes. En el ejemplo de la primera tabla, la primera vez que se ejecuta la fórmula, los datos de :Data se completarán en :ParentData, pero la columna :ParentData/ParentData se dejará en blanco porque la fórmula se ejecutó antes de que se completaran los datos. O.. .algo así por lo menos.
¡Gracias por tus pensamientos!
dt = CurrentDataTable();
parent = :ParentID;
rows = dt << GetRowsWhere(:SerialNumber == parent);
Mean(Column(dt, "LayersMPAFraction")[rows]);
Re: Fórmula de columna usando datos de otras filas¿Cómo está definiendo las relaciones padre/hijo? Sería difícil encontrar una solución sólida sin saber esto primero. Una mirada a su solución original podría ayudar.
Re: Fórmula de columna usando datos de otras filasBien, el truco que creo que funcionaría bien es crear un subconjunto de los datos originales con solo el ID principal y la columna de datos principal.Luego únelo de nuevo a los datos originales.Coincidencia de la identificación del padre con la identificación del niño.Espero que esté claro.Avísame si eso no está claro.
Re: Fórmula de columna usando datos de otras filasGracias @Peter_Hersh !
Dada mi descripción, sí, Lag funcionaría bien, pero tienes razón en que los datos no siempre están estructurados de esta manera. Los datos secundarios y principales pueden estar contenidos en diferentes números de filas, a varias distancias de las nuevas celdas. Por ejemplo, podría tener 3 filas de datos para el ID de muestra A, que quisiera promediar para incluir en todas las filas del elemento secundario. Y puede haber varios hijos para el mismo padre.
Parece que simplifiqué demasiado mi ejemplo jaja. ¿Quizás la otra forma a la que aludió podría ayudar?
Re: Fórmula de columna usando datos de otras filas@mringqui , Sí, hacer esto no debería ser un problema usando la función Lag dentro del generador de fórmulas.No estoy seguro de si su estructura de datos siempre es así.Hay una manera de hacer esto de manera diferente si el espacio entre Padres e Hijos no es siempre el mismo.
Re: Fórmula de columna usando datos de otras filas¿Alguien tiene alguna idea?