Ciao... Vorrei poter creare diversi grafici di variabilità in una finestra da un elenco contenente i nomi delle colonne. Posso farlo funzionare correttamente in tempo reale (grazie all'aiuto di altri post del forum JMP). Vorrei anche salvare lo script nella tabella dati in modo che la prossima volta che la tabella dati verrà aperta, l'utente possa semplicemente fare clic sul "triangolo verde" per generare la stessa finestra di grafici. Ci sto quasi, salva qualcosa nella tabella dati, ma non genera la finestra con i grafici cliccando sul triangolo verde. Se faccio clic con il pulsante destro del mouse e seleziono Modifica sul triangolo verde, vedo che il motivo per cui non viene visualizzata la finestra con i grafici è perché l'intero script è tra virgolette. Non riesco a capire come rimuovere le virgolette. Avete idee?
Per prima cosa, creo una stringa (plotAllStandardExpr) per creare la nuova finestra tramite una serie di concatenazioni all'interno di un ciclo for.
2. La riga Eval(Parse(plotAllStandardExpr)) creerà correttamente la finestra con tutti i grafici al suo interno.
Ma la riga Eval(Substitute(....) salva semplicemente la stringa tra virgolette nella tabella dati. Ho provato Eval(Parse(plotAllStandardExpr)) all'interno della funzione Substitute, ma non ha funzionato.
Current Data Table(dtSplit_copy);
plotAllStandardExpr = "New Window(\!"Var Charts: All\!", V List Box(";
for(i = 1, i <= NItems(plotcols), i++,
plotAllStandardExpr = plotAllStandardExpr || "Variability Chart(
Y(" || plotcolsString[i] || "),
X( :Split, :Voltage, :tst_temp ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
Show Box Plots( 1 ));"
);
plotAllStandardExpr = plotAllStandardExpr ||"))";
Eval(Parse(plotAllStandardExpr));
Eval(Substitute(Expr(dtSplit_copy << New Script("All Var charts", xxxx)),
Expr(xxxx), Eval(plotAllStandardExpr)));
Devi usare Parse() per rimuovere le virgolette (non c'è bisogno di Eval() perché vuoi l'espressione). Di seguito sono riportate alcune opzioni
Names Default To Here(1);
dt = New Table("");
plotcolsString = {"height", "weight"};
plotAllStandardExpr = "New Window(\!"Var Charts: All\!", V List Box(";
For(i = 1, i <= N Items(plotcolsString), i++,
plotAllStandardExpr = plotAllStandardExpr || "Variability Chart(
Y(" || plotcolsString[i]
||
"),
X( :Split, :Voltage, :tst_temp ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
Show Box Plots( 1 ))
,"
);
plotAllStandardExpr = plotAllStandardExpr || "))";
Parse(plotAllStandardExpr);
Eval(EvalExpr(dt << New Script("all var charts", Expr(Parse(plotAllStandardExpr)))));
Eval(Substitute(
Expr(dt << New Script("All Var charts2", _script_)),
Expr(_script_), Parse(plotAllStandardExpr))
);

Grazie mille. Entrambe le opzioni hanno funzionato come pubblicizzato!