Comment puis-je créer un sélecteur de colonnes dans une table de données fusionnée finale à partir d'une variable de liste créée dans l'une des tables source ?J'ai deux sources de données mises à jour régulièrement, ce qui génère de nouvelles colonnes. Celles-ci sont fusionnées via un script JSL, ce qui fonctionne bien. Cependant, j'aimerais intégrer un graphique avec un sélecteur de colonnes qui s'agrandit à mesure que des colonnes sont ajoutées.
Par exemple, supposons que les données HPLC proviennent des instruments A et B. Chaque colonne correspond à un échantillon distinct, et d'autres échantillons seront ajoutés au fil du temps. J'aimerais créer un graphique XY simple dans le tableau de données final pour mes échantillons « A », afin que le sélecteur de colonnes s'agrandisse à mesure que des colonnes sont ajoutées. (Similaire aux colonnes B et même C, si un troisième instrument est ajouté ultérieurement).

J'ai créé une variable à partir de la table A avant de fusionner les données avec B, mais comment puis-je transmettre la liste (ou l'évaluer) afin que la table finale reconnaisse la variable ou ait des noms de colonnes explicites ?
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 />);
Cela semble bien fonctionner lorsque j'obtiens une liste de colonnes de la table finale, mais essayer d'utiliser une variable créée à partir d'une autre table pose des problèmes.
Automatisation et scriptsExploration et visualisation des donnéesWindowsRe : Comment puis-je créer un sélecteur de colonnes dans une table de données fusionnée finale à partir d'une variable de liste créée dans l'une des tables source ?Souhaitez-vous toujours utiliser tout sauf la première colonne (:Time) dans le sélecteur de colonnes ?
Re : Comment puis-je créer un sélecteur de colonnes dans une table de données fusionnée finale à partir d'une variable de liste créée dans l'une des tables source ?Dans ce cas oui - toujours la première colonne qui aura toujours le même nom.
Re : Comment puis-je créer un sélecteur de colonnes dans une table de données fusionnée finale à partir d'une variable de liste créée dans l'une des tables source ?Dans ce cas, j'envisage de créer la liste des colonnes de manière dynamique dans le script de table
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))
);
));
Vous pouvez éviter l'évaluation si vous créez simplement le graphique et l'enregistrez sous forme de script (j'utilise cette « astuce » assez souvent)
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;
et si vous souhaitez évaluer
// 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 : Comment puis-je créer un sélecteur de colonnes dans une table de données fusionnée finale à partir d'une variable de liste créée dans l'une des tables source ?Merci!