Utilizzare il ciclo for sul grafico di variabilità per più colonneCIAO,
Ho diverse colonne in un set di dati e volevo utilizzare lo script per tracciarle nel grafico di variabilità in modo da poter generare questi grafici con impostazioni simili. Ma c'è un errore. Qualcuno può illuminare quale dovrebbe essere la sintassi corretta?
la mia sceneggiatura:
dt = tabelladaticorrente();
colnames = dt << ottiene i nomi delle colonne ( numerico );
mostra(nomi di colonna);
nw = Nuova finestra("Grafici");
for(i=5, i test = colnames[i];
gb = Grafico di variabilità(
Y( come colonna(test) ) ,
X( :Gruppo, :Lotto, :Wafer ),
Massimo Iter( 100 ),
Limite conv( 0.00000001 ),
Ascisse di integrazione numerica( 128 ),
Numero Funzione Evals( 65536 ),
Tipo di analisi( Nome( "Scegli la migliore analisi (EMS REML bayesiano)" ) ),
Grafico sviluppo standard( 0 ),
Mostra box plot(1),
)
);
nw<
messaggio di registro:
colnames = {Lotto, Wafer, X, Y, Nome("4V01PC03MHVN_BF00-LT-VL_HN_11.1X1.1-VALUE_F"), Nome("4V01PC03MHVN_BF00-LT-VL_HN_11.1X11.1-VALUE_F"), Nome("4V01PC03MHVN_BF00- LT-VL_MN_11.1X0.76-VALUE_F"), Nome("4V01PC03MHVN_BF00-LT-VL_MN_11.1X11.1-VALUE_F"), Nome("4V01PC03MHVN_BF00-LT-VL_MNT_11.1X0.76-VALUE_F"), Nome("4V01PC03MHVN_BF00 -LT-VL_MNT_11.1X11.1-VALUE_F"), Nome("4V01PC04MHVP_BF00-LT-VL_HP_0.4X1.1-VALUE_F"), Nome("4V01PC04MHVP_BF00-LT-VL_HP_11.1X1.1-VALUE_F"), Nome(" 4V01PC04MHVP_BF00-LT-VL_HP_11.1X11.1-VALUE_F"), Nome("4V01PC04MHVP_BF00-LT-VL_MP_11.1X1.1-VALUE_F"), Nome("4V01PC04MHVP_BF00-LT-VL_MP_11.1X11.1-VALUE_F"), Nome( "4V01PC06TX5V_BF00-LT-VL_N5_11.1X11.1-VALUE_F"), Nome("4V01PC06TX5V_BF00-LT-VL_P5_11.1X11.1-VALUE_F"), EndTimestamp};
Not Found in access or evaluation of 'Variability Chart' , Bad Argument( {., Il ruolo richiede almeno 1 colonna.} ), Grafico di variabilità(/*####*/Y( As Column( test ) ),
X( :Gruppo, :Lotto, :Wafer ),
Massimo Iter( 100 ),
Limite conv( 0.00000001 ),
Ascisse di integrazione numerica( 128 ),
Numero Funzione Evals( 65536 ),
Tipo di analisi( Nome( "Scegli la migliore analisi (EMS REML bayesiano)" ) ),
Grafico sviluppo standard( 0 ),
Mostra box plot( 1 )
)
Nello script seguente, errore contrassegnato da /*###*/
dt = Tabella dati corrente();
colnames = dt << ottiene i nomi delle colonne ( numerico );
Mostra( nomi di colonne );
nw = Nuova finestra( "Grafici" );
For( i = 5, i < N Items( colnames ), i++,
test = colnames[i];
gb = Grafico di variabilità(/*####*/Y( As Column( test ) ),
X( :Gruppo, :Lotto, :Wafer ),
Massimo Iter( 100 ),
Limite conv( 0.00000001 ),
Ascisse di integrazione numerica( 128 ),
Numero Funzione Evals( 65536 ),
Tipo di analisi( Nome( "Scegli la migliore analisi (EMS REML bayesiano)" ) ),
Grafico sviluppo standard( 0 ),
Mostra box plot( 1 )
);
);
nw << append( Report( gb ) );
Ri: Utilizzare il ciclo for sul grafico di variabilità per più colonneCiao, grazie per le modifiche. Ha funzionato nel modo in cui volevo.
Ri: Utilizzare il ciclo for sul grafico di variabilità per più colonneCIAO,
grazie per i suggerimenti. Ma il suggerimento n. 1 non è applicabile perché volevo davvero iniziare da 5.
Ri: Utilizzare il ciclo for sul grafico di variabilità per più colonneCi sono un paio di cose che causano l'errore. Uno è che nel tuo ciclo For (), stai inizializzando i = 5, quando presumo che vorresti iniziare con il primo elemento nell'elenco memorizzato in colnames, quindi dovrebbe essere i = 1. La seconda cosa è che non è necessario utilizzare As Column(): puoi semplicemente utilizzare il nome della variabile (test) che memorizza il nome della colonna attraverso ogni iterazione, Y( test ).
Inoltre, stai aggiungendo il grafico di variabilità al di fuori del ciclo For(), il che significa che solo l'ultimo grafico verrà aggiunto alla finestra. Vuoi avere l'ultima riga del tuo codice all'interno del ciclo. Spero che questo ti aiuti!
Ri: Utilizzare il ciclo for sul grafico di variabilità per più colonneHo cambiato il tuo codice e penso che funzionerà nel modo in cui vuoi che funzioni.
1. Ho aggiunto una V List Box() alla tua "Nuova finestra". Ciò ti consentirà di avere un migliore controllo dell'ordine dell'output desiderato. Se vuoi che i display vadano da sinistra a destra, passa a H List Box().
2. Ho aggiunto l'elemento "Invisibile" al grafico di variabilità. Presumo che quello che vuoi sia finire con un'unica finestra senza vedove separate per ogni grafico.
3. As Column() non funzionerebbe. Non sono sicuro del perché no! Tuttavia, il passaggio a una funzione Column() ha funzionato. Inoltre, ho eliminato la necessità della variabile "Test", poiché è più semplice avere solo il riferimento all'elenco, ColNames[] direttamente nel codice del grafico di variabilità.
4. Presumo che quello che vuoi sia una singola finestra con tutto l'output. La tua aggiunta alla fine del tuo codice aggiungerà solo l'ultimo grafico. Il riferimento a "gb" non è additivo. "gb" verrà cambiato in ogni grafico successivo ogni volta che viene referenziato nel ciclo For(). Pertanto, l'append deve essere all'interno del ciclo.
dt = Current Data Table();
colnames = dt << get column names( numeric );
Show( colnames );
nw = New Window( "Plots", myVLB = V List Box() );
For( i = 5, i < N Items( colnames ), i++,
gb = Variability Chart(
invisible,
Y( Column( colnames[i] ) ),
X( :Group, :Lot, :Wafer ),
Max Iter( 100 ),
Conv Limit( 0.00000001 ),
Number Integration Abscissas( 128 ),
Number Function Evals( 65536 ),
Analysis Type( Name( "Choose best analysis (EMS REML Bayesian)" ) ),
Std Dev Chart( 0 ),
Show Box Plots( 1 ),
);
myVLB << append( Report( gb ) );
);