Generar tabla Delta para calcular deltas entre dos mediciones de temperaturaTengo una tabla de datos que combina dos conjuntos de datos para dos temperaturas en varias unidades. Cada unidad se somete a más de 20 pruebas a dos temperaturas.
Necesito generar una tabla delta para cada unidad, que calcule el delta entre temp2 - temp1 como se muestra en la tabla "Data_Table".
Sigo recibiendo el mismo error después de que se genera una tabla delta incompleta que se muestra a continuación.

El error que me sale

Mi tabla de datos

Aquí está mi código, si alguien puede ayudar se lo agradecería mucho.
Names Default To Here(1);
dt = Current Data Table();
allCols = dt << Get Column Names(string);
tpColName = allCols[1]; // Always Column 1
dutColName = allCols[2]; // Always Column 2
testCols = {};
For(i = 3, i <= N Items(allCols), i++,
Insert Into(testCols, allCols[i])
);
// 2. Extract Unique Values
Summarize(dt, dutList = By(Column(dt, 2)));
Summarize(dt, tpList = By(Column(dt, 1)));
// 3. Setup Results Table
dt_delta = New Table("DUT Delta Results");
dt_delta << New Column("DUT", Character, Nominal);
dt_delta << New Column("Shift", Character, Nominal);
For(i = 1, i <= N Items(testCols), i++,
dt_delta << New Column(testCols[i] || " Δ", Numeric, Continuous)
);
// 4. Robust Calculation Loop
For(d = 1, d <= N Items(dutList), d++,
currDUT = dutList[d];
For(t = 2, t <= N Items(tpList), t++,
p1 = tpList[t - 1];
p2 = tpList[t];
// This forces a match even if your DUT/TestPoints are numbers
r1Mat = dt << Get Rows Where(
Char(Column(dt, 2)[]) == Char(currDUT) & Char(Column(dt, 1)[]) == Char(p1)
);
r2Mat = dt << Get Rows Where(
Char(Column(dt, 2)[]) == Char(currDUT) & Char(Column(dt, 1)[]) == Char(p2)
);
// Ensure exactly one row found for each point to prevent subscript errors
If(N Rows(r1Mat) > 0 & N Rows(r2Mat) > 0,
row1 = r1Mat[1]; // Explicitly take first found row as integer
row2 = r2Mat[1];
newRow = dt_delta << Add Rows(1);
dt_delta:DUT[newRow] = currDUT;
dt_delta:Shift[newRow] = p2 || " - " || p1;
For(c = 1, c <= N Items(testCols), c++,
colN = testCols[c];
v1 = Column(dt, colN)[row1];
v2 = Column(dt, colN)[row2];
If(!Is Missing(v1) & !Is Missing(v2),
Column(dt_delta, colN || " Δ")[newRow] = v2 - v1
);
);
);
);
);
dt_delta << Bring Window To Front;
Edit (jthi): added JSL formatting
Automatización y scriptingRe: Generar tabla Delta para calcular deltas entre dos mediciones de temperatura¿Podrías proporcionarme la tabla de datos?
Re: Generar tabla Delta para calcular deltas entre dos mediciones de temperaturanewRow = dt_delta << Add Rows(1);
No devuelve el número de fila. Si lo cambia a:
dt_delta << Add Rows(1);
newRow = nrows(dt_delta);
Funcionará
Re: Generar tabla Delta para calcular deltas entre dos mediciones de temperaturaGracias Jarmo, ver tabla adjunta
Re: Generar tabla Delta para calcular deltas entre dos mediciones de temperaturaGracias Jim, usaré el nuevo código, me estaba quedando una tabla vacía.
Re: Generar tabla Delta para calcular deltas entre dos mediciones de temperatura¡Funcionó de maravilla! Lo probaré en un conjunto de datos más grande. Gracias Jim.

Re: Generar tabla Delta para calcular deltas entre dos mediciones de temperaturaCálculo confirmado también en Excel, los datos coinciden.

Re: Generar tabla Delta para calcular deltas entre dos mediciones de temperaturaHola Jim, ¿existe algún script o función en JMP que me permita escalar horizontalmente todas las columnas numéricas para incluir los límites? De esta manera, al generar gráficos de variabilidad, se incluyen los límites. Actualmente, todos los gráficos se escalan automáticamente solo en función de los datos. Gracias.
Re: Generar tabla Delta para calcular deltas entre dos mediciones de temperaturaCada columna de una tabla de datos JMP puede tener propiedades de columna configuradas. Si hace clic derecho en el encabezado de una columna, puede seleccionar "Propiedades de columna", lo que mostrará todas las propiedades de columna configurables. Los dos elementos que parecen ser necesarios son "Límites de especificación" y "Eje". Una vez configurados, se usarán/mostrarán en todos los gráficos relevantes posteriores.
Re: Generar tabla Delta para calcular deltas entre dos mediciones de temperaturaHola Jim, esto puede funcionar para algunas pruebas, pero tengo unas 2000 pruebas y será difícil hacer una a la vez. ¿Hay alguna forma de hacer un script que se aplique a todas las pruebas? Gracias.
Re: Generar tabla Delta para calcular deltas entre dos mediciones de temperaturaPuedes programarlo. ¿De dónde vienen tus límites?
Re: Generar tabla Delta para calcular deltas entre dos mediciones de temperaturaGracias por la respuesta, pude resolverlo. Por cierto, mis límites normalmente se importan para cada columna.