¿Cómo completar números secuenciales (comenzando desde 1) en una columna cuando aparecen elementos idénticos en otra columna?Digamos que tengo datos de dos columnas. La primera columna ID de pieza, la segunda columna es un valor medido para esa pieza. Cada pieza se mide N veces, de modo que la columna partID tenga filas con el ID que aparece N veces en la tabla hasta que aparezca el siguiente partID. Quiero crear una nueva columna con el número de repeticiones/ejecuciones de medición para una pieza determinada.
Entonces, para los ID de pieza idénticos que aparecen en la columna ID de pieza, quiero completar la columna Ejecuciones con números secuenciales comenzando desde 1.
Entonces, si la parte A se mide 11 veces, la columna Ejecuciones obtiene entradas de fila del 1 al 11. La siguiente parte B se mide 9 veces, la columna Ejecuciones tiene entradas de fila del 1 al 9 y así sucesivamente.
¿Cómo puedo automatizar esto a través de JSL?
ventanasRe: ¿Cómo completar números secuenciales (comenzando desde 1) en una columna cuando aparecen elementos idénticos en otra columna?Siempre que los ID de pieza estén agrupados como usted indicó, esto funcionará.
If(
Row() == 1, 1,
Lag( :partID ) == :partID, Lag( :Runs ) + 1,
1
)
Re: ¿Cómo completar números secuenciales (comenzando desde 1) en una columna cuando aparecen elementos idénticos en otra columna?@mmarchandTSI La solución es una buena solución.Pero como es habitual, en JMP existen múltiples formas de llegar a la solución.Aquí hay una solución alternativa.
Col Cumulative Sum( 1, :partID )
Re: ¿Cómo completar números secuenciales (comenzando desde 1) en una columna cuando aparecen elementos idénticos en otra columna?La suma acumulativa de columnas con valor 1 debería funcionar con las versiones actuales de JMP
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(10),
Compress File When Saved(1),
New Column("Column 1",
Character,
"Nominal",
Set Values({"A", "A", "A", "A", "B", "B", "C", "C", "C", "D"})
)
);
dt << New Column("Run", Numeric, Ordinal, Formula(
Col Cumulative Sum(1, :Column 1)
));