Ciao a tutti,
Sto cercando di inserire i nomi delle colonne nella piattaforma delle funzionalità di processo e di impostare la distribuzione normale delle 2 miscele come predefinita.
Quindi prima ottengo i nomi delle colonne
(per esempio
)
collista={};
collist=dt3 << Ottieni i nomi delle colonne("numeric");
quindi eseguo il ciclo delle colonne nella piattaforma delle capacità:
nw=new window("capability analysis",
for(i=1, i<=n items(collist),i++,
dt3<<PROCESS capability=""></PROCESS>
<P> </P>
<P>Tuttavia, non riconosce la selezione della porzione di distribuzione e quindi viene impostato su Normale per impostazione predefinita e non controlla le altre distribuzioni a cui sono interessato:</P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shampton82_1-1666474952469.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="shampton82_1-1666474952469.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/46513i65243B0FD8860575/shampton82_1-1666474952469.png" role="button" title="shampton82_1-1666474952469.png" alt="shampton82_1-1666474952469.png" /></span></SPAN></P>
<P> </P>
<P>Grazie per qualsiasi contributo!</P>
<P> </P>
<P>Steve</P>
<P> </P>Molto probabilmente ci sono altri modi per gestirlo, ma qui c'è un'opzione. Ho dovuto riscrivere un po 'il codice, perché non avevo i tuoi dati di esempio e farlo funzionare richiede un po' di debug. Questo sembra essere piuttosto rigido con il formato delle colonne (molto probabilmente dovuto a & Dist()), quindi ho fatto alcuni Expr(NameExpr(AsColumn(Expr()))) per ottenere riferimenti di colonna dall'aspetto corretto
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
col_list = dt << Get Column Names(Continuous, String); // Note, these are as strings!
col_list = col_list[1::5];
nw = New Window("Capability Analysis",
vlb_collector = V List Box()
);
col_name = col_list[1];
create_capability_expr = Expr(
col_ref = Expr(NameExpr(AsColumn((Expr(col_name)))));
Eval(EvalExpr(
pc = dt << Process Capability(
Process Variables(Expr(col_ref) & Dist(Mixture of 2 Normals)),
Moving Range Method(Average of Moving Ranges),
Nonnormal Capability Method("Z-Score"n),
Johnson Distribution Fit Method(Maximum Likelihood),
Individual Detail Reports(1),
Capability Box Plots(0),
Goal Plot(0),
Capability Index Plot(0),
Process Performance Plot(0)
)
));
Eval(EvalExpr(
pc << {(Expr(col_ref) & Dist(Mixture of 2 Normals))<< Process Capability Analysis(Compare Distributions(1, <<FIT normal=""></FIT>

Inserisci un'espressione in un'altra usando Eval Insert, Eval Expr, Parse e Substitute consiglia vivamente di leggere un post, aiuta enormemente con il debug anche perché puoi semplicemente eseguire la parte EvalExpr()) e vedere quale sarà l'espressione prima di valutarla
Modificare:
Quando ho qualcosa con le colonne e i loro riferimenti, inizio "sempre" con i nomi delle colonne come stringa e poi faccio quello che devo con Column(), As Column(), Name Expr(), Expr()... e una combinazione di quelli. Sento che questo è il metodo più robusto, più facile da eseguire il debug, funziona la maggior parte del tempo e il punto di partenza è sempre lo stesso (nome della colonna come stringa). Potrebbe non sembrare il più pulito, ma non mi interessa davvero quando provo a fare riferimento alle colonne in JMP poiché la pulizia del codice di solito non è il problema più grande.
Ha funzionato alla grande e ha imparato alcuni nuovi trucchi con il tuo codice e il post collegato!Grazie per l'aiuto!
Steve