Hola a todos,
Estoy ejecutando JMP Pro 16.1.0 y necesito ayuda de JSL.
Tengo una tabla de datos que se genera al importar un archivo CSV y tiene la siguiente estructura (el número real de columnas es mucho mayor, pero la tabla mantiene esta estructura):

Estoy tratando de averiguar cómo cambiar correctamente la estructura al formato típico para que una tabla de especificaciones sea así:

Eventualmente, los nombres de las columnas se cambiarán al formato JMP para una tabla de datos de especificaciones, a saber: "Columna 1"n, "_LSL"n, "_Target"n y "_USL"n. Cada fila será una especificación con los valores correspondientes.
El problema que tengo es cómo hacer esto con JSL para automatizar el proceso. He probado diferentes combinaciones de Split o Stack, pero ninguna me lleva a donde quiero ir, al menos no en la forma en que las he usado. Estoy seguro de que hay una manera fácil de hacer esto, pero me lo estoy perdiendo de alguna manera.
Cualquier sugerencia es bienvenida.
¡Gracias!,
SD
Creo que la pila debería poder hacer esto cuando se usa la pila de series múltiples. Los tipos de datos deben ser iguales para todas las columnas (al menos en este método)



y luego elimine las columnas de etiquetas. Cambiar las opciones en la plataforma de pila podría hacerlo aún más claro, pero no he usado la pila de varias series, pero es muy poderosa. voy a etiquetar @Jeff_Perkinson aquí, porque lo he visto usarlo varias veces y podría tener mejores configuraciones que yo.
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(1),
New Column("Column 1", Character, "Nominal", Set Values({"x1"})),
New Column("Column 2", Character, "Nominal", Set Values({"1"})),
New Column("Column 3", Character, "Nominal", Set Values({"1.1"})),
New Column("Column 4", Character, "Nominal", Set Values({"1.11"})),
New Column("Column 5", Character, "Nominal", Set Values({"x2"})),
New Column("Column 6", Character, "Nominal", Set Values({"2"})),
New Column("Column 7", Character, "Nominal", Set Values({"2.2"})),
New Column("Column 8", Character, "Nominal", Set Values({"2.22"})),
New Column("Column 9", Character, "Nominal", Set Values({"x3"})),
New Column("Column 10", Character, "Nominal", Set Values({"3"})),
New Column("Column 11", Character, "Nominal", Set Values({"3.3"})),
New Column("Column 12", Character, "Nominal", Set Values({"3.33"}))
);
// data types must be same for stack, so you might have to script it
dt_stacked = dt << Stack(
columns(
:Column 1, :Column 2, :Column 3, :Column 4, :Column 5, :Column 6, :Column 7,
:Column 8, :Column 9, :Column 10, :Column 11, :Column 12
),
Source Label Column("Label"),
Stacked Data Column("Data"),
Stack By Row(0),
Number of Series(4),
Contiguous
);
For Each({col_name}, dt_stacked << get column names("String"),
If(Contains(col_name, "Label"),
dt_stacked << Delete Columns(col_name)
);
);Esta es una pila de series múltiples usando Tablas-> Pila.
Empezando por esta tabla.

Y usando Tables-> Stack to con la opción Multiple Series Stack.

Te conseguiré esta mesa.

Simplemente elimine las columnas Etiqueta y ya está todo listo.
Aquí está el JSL que obtuve del registro mejorado.
// Stack data table
// → Data Table( "untitled 13" )
Data Table( "untitled 11" ) << Stack(
columns(
:c00000 01, :c00000 02, :c00000 03, :c00000 04, :c00000 05, :c00000 06,
:c00000 07, :c00000 08, :c00000 09, :c00000 10, :c00000 11, :c00000 12
),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Number of Series( 4 )
);
// Delete columns
Data Table( "untitled 13" ) << Delete Columns(
:Label, :Label 2, :Label 3, :Label 4
);