¿Cómo puedo crear un conmutador de columnas en una tabla de datos fusionados final a partir de una variable de lista creada en una de las tablas de origen?Tengo dos fuentes de datos que se actualizan periódicamente, lo que genera nuevas columnas. Estas se fusionan mediante scripts JSL, lo cual funciona correctamente, pero me gustaría integrar un gráfico con un selector de columnas que crezca a medida que se añaden más.
Por ejemplo, supongamos que los datos de HPLC provienen de los instrumentos A y B. Cada columna representa una muestra independiente, y se añaden más muestras con el tiempo. Me gustaría crear un gráfico XY simple en la tabla de datos final para mis muestras "A", de modo que, a medida que se añadan más columnas, el selector de columnas también crezca. (Similar con B e incluso C, si se añade un tercer instrumento posteriormente).

He creado una variable de la tabla A antes de fusionar los datos con B, pero ¿cómo puedo pasar la lista (o evaluarla) para que la tabla final reconozca la variable o tenga nombres de columna explícitos?
A_columns = dt_A <<GET column="" names=""></GET><BR />//Merge A and B based on time column<BR /><BR />Final_Table =dt_B << Update(<BR />With(dt_A)),<BR />Match Columns( :Time = :Time)<BR />);<BR />Final_Table <<NEW script=""></NEW>Graph Builder(<BR />Size( 546, 565 ),<BR />Show Control Panel( 0 ),<BR />Variables( X( :Time ), Y( A_columns[1] ) ),<BR />Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) ),<BR />Column Switcher( A_columns[1], A_columns)<BR />);
Esto parece funcionar bien cuando obtengo una lista de columnas de la tabla final, pero intentar usar una variable creada a partir de otra tabla está causando problemas.
Automatización y scriptingExploración y visualización de datosVentanasRe: ¿Cómo puedo crear un conmutador de columnas en una tabla de datos fusionados final a partir de una variable de lista creada en una de las tablas de origen?¿Desea utilizar siempre todo excepto para la primera columna (:Time) en el conmutador de columnas?
Re: ¿Cómo puedo crear un conmutador de columnas en una tabla de datos fusionados final a partir de una variable de lista creada en una de las tablas de origen?En este caso sí: siempre la primera columna que siempre tendrá el mismo nombre.
Re: ¿Cómo puedo crear un conmutador de columnas en una tabla de datos fusionados final a partir de una variable de lista creada en una de las tablas de origen?En ese caso considero construir la lista de columnas dinámicamente dentro del script de tabla.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
table_script_expr = Expr(
cols = Current Data Table() << Get Column Names();
Remove From(cols, 1); // drop first column
gb = Graph Builder(
Size(528, 448),
Show Control Panel(0),
Variables(X(:lot_id), Y(Eval(cols[1]))),
Elements(Points(X, Y, Legend(3)))
);
gb << Column Switcher(
cols[1],
Remove(cols, 1)
)
);
Eval(EvalExpr(
dt << New Script("Graph",
Expr(NameExpr(table_script_expr))
);
));
Puedes evitar la evaluación si simplemente creas el gráfico y lo guardas como script (uso este "truco" con bastante frecuencia)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
cols = dt << Get Column Names();
Remove From(cols, 1); // drop first column
gb = dt << Graph Builder(
Size(528, 448),
Show Control Panel(0),
Variables(X(:lot_id), Y(Eval(cols[1]))),
Elements(Points(X, Y, Legend(3))),
Column Switcher(
cols[1],
Remove(cols, 1)
),
Invisible
);
gb << Save Script to Data Table("Graph"); // this will remove the need for evaluation
wait(0);
gb << close window;
y si deseas evaluar
// If you wish to evaluate, this should work even though the script will look a bit weird due to lack of ":" in columns
// If it doesn't you for some reason, you will have to build the list in a bit different manner for evaluation
Eval(EvalExpr(
dt << New Script("Graph2",
Graph Builder(
Size(528, 448),
Show Control Panel(0),
Variables(X(:lot_id), Y(Expr(cols[1]))),
Elements(Points(X, Y, Legend(3))),
Column Switcher(
Expr(cols[1]),
Expr(Remove(cols, 1))
)
)
)
));
Re: ¿Cómo puedo crear un conmutador de columnas en una tabla de datos fusionados final a partir de una variable de lista creada en una de las tablas de origen?¡Gracias!