Sto cercando di scrivere uno script robusto che consenta all'utente di specificare un valore Sigma K e selezionare le colonne Y da un elenco di tutte le colonne continue e creare i grafici LJ per ciascuna e salvare i limiti in una tabella dati alta.
Lo script non crea errori ma non crea l'output grafico.
Non riesco a capire dove sbaglio, lo script è qui sotto e allegato
Grazie
Names Default To Here(1);
dt = Current Data Table();
// Get list of continuous columns
contCols = {};
For(i = 1, i <= N Cols(dt), i++,
col = Column(dt, i);
If(col << Get Modeling Type == "Continuous",
Insert Into(contCols, col << Get Name)
);
);
If(N Items(contCols) == 0,
Show Message(
"No continuous columns found.", "Please ensure your data table has continuous columns."
);
Stop();
);
// Dialog for selecting columns and k
colList = .;
kNum = .;
dialogResult = .;
nw = New Window("Levey-Jennings Chart Setup",
<
<MODAL></MODAL>
<P>Modifica (jthi): aggiunta formattazione jsl</P>
Ci sono molti errori nello script e presumo che sia stato creato da qualche LLM. Se desiderate creare script in JMP al di fuori degli script creati con JMP, vi consiglio di consultare la Guida agli script .
Scopri di più...
Names Default To Here(1);
dt = Current Data Table();
nw = New Window("Levey-Jennings Chart Setup", << Type("Modal Dialog"),
H List Box(
Lineup Box(N Col(1),
Text Box("Select up to 50 continuous columns:"),
fcs = Filter Col Selector(dt, << Nominal(0), << Ordinal(0), << Continuous(1), Character(0), << Set Max Selected(50)),
Text Box("Enter k (number of SDs for Shewhart control limits):"),
neb = Number Edit Box(3)
),
Lineup Box(N Col(1),
Button Box("OK",
selcols = fcs << get selected;
ksig = neb << get;
),
Button Box("Cancel")
)
)
);
If(nw["Button"] != 1,
Throw("Cancelled");
);
If(N Items(selcols) == 0,
Throw("No columns selected");
);
collist = Transform Each({colname}, selcols, Name Expr(AsColumn(dt, colname)));
Substitute Into(collist, Expr(List), Expr(Y));
ccb = Eval(EvalExpr(dt << Control Chart Builder(
Show Two Shewhart Charts(0),
K Sigma(Expr(ksig)),
Variables(Expr(Name Expr(collist))),
Chart(Points(Statistic("Individual")), Limits(Sigma("Levey Jennings"))),
Show Control Panel(0)
)));
Grazie - perfetto
Andrò avanti riga per riga e cercherò di capire cosa sta succedendo
Ciao @NBrammer ,
Mi piace molto questa guida di Don McCormack su come eseguire piattaforme senza conoscere i nomi o il numero delle colonne: https://community.jmp.com/t5/JSL-Cookbook/Run-a-Platform-without-Knowing-the-Number-or-Names-of-Columns/ta-p/464407
Grazie,
Ben