Come creare script group by per gestire un numero flessibile di gruppiCiao,
Lavorando sull'automazione dell'analisi e la necessità di rendere lo script generato automaticamente più generico.
Il flusso di lavoro consiste nel creare una tabella di riepilogo raggruppata per tre colonne con quattro colonne che ottengono i valori derivati. Questo va bene.
Ora voglio creare grafici unidirezionali con una delle variabili di raggruppamento originali e raggruppare ulteriormente i grafici con una seconda variabile.
Raggruppamento: ciclo, passo, passo unico
4 passaggi separati Oneway per ciclo raggruppati.
Lo script generato automaticamente funziona bene sul mio file di prova. Il problema è come renderlo più generico.
Se guardo lo script, ci sono chiamate specifiche per il valore della colonna del passaggio
<< {Arrange in Rows (4)}, Where (: Step == 1), Where (: Step == 1))
E nel caso di test ci sono 19 valori per passo. Come dovrei fare per creare questo per essere flessibile al numero di passaggi? Vari file avranno un numero diverso di passaggi. Quali sono le migliori pratiche qui? Il mio risultato desiderato è di avere i quattro grafici in fila con la casella di raggruppamento che ha anche il valore del passaggio mostrato (ora è in piccolo testo dopo i grafici) e robot per il numero di passaggi che potrebbe avere un file in arrivo.
Andy
dt1=Data Table( dt) <<SUMMARY></SUMMARY>
ScriptingRi: Come creare script per raggruppare per gestire un numero flessibile di gruppiHa fatto dei progressi.
La maggior parte del lavoro può essere gestita utilizzando l'operatore "Da".
Tuttavia ciò che manca è come disporre i gruppi in gruppi di 4 in modo che le trame per ciascuno raggruppando siano sulla stessa linea.
Qualche idea
Andy
view = dt1 << Oneway(
Y( {:"Min(TV Pres (torr))"n ,:"Min(DS Pres (torr))"n,:"Max(TV Pres (torr))"n, :"Max(DS Pres (torr))"n}),
X( :Cycle ),
by (:Step),
Quantiles( 1 ),
Means( 1 ),
Mean Diamonds( 0 ),
Box Plots( 1 ),
X Axis Proportional( 0 ),
Points Jittered( 1 ),
Grand Mean( 0 ),
SendToReport(
Dispatch( {}, "Quantiles", OutlineBox, {Close( 1 )} ),
Dispatch( {}, "Oneway Anova", OutlineBox, {Close( 1 )} ),
Dispatch( {"Oneway Anova"}, "Analysis of Variance", OutlineBox, {Close( 1 )} )
)
);Ri: Come creare script per raggruppare per gestire un numero flessibile di gruppiDi seguito è riportato un esempio che mette i 4 grafici in una singola riga e una riga per ogni colonna specificata nell'analisi

Names Default To Here( 1 );
dt1 = Open( "$SAMPLE_DATA\big class.jmp" );
// restrict to 4 ages to match the 4 level requirement
dt1 << select where( :age >= 16 );
dt1 << delete rows;
// Create a window to place the output in
nw = New Window( "test", lub = Lineup Box( N Col( 4 ) ) );
// Run the analysis with a By clause
view = dt1 << Oneway(
invisible,
Y( :height, :weight ),
X( :sex ),
Quantiles( 1 ),
Means( 1 ),
Box Plots( 1 ),
Mean Diamonds( 1 ),
by( :age ),
SendToReport(
Dispatch( {}, "Quantiles", OutlineBox, {Close( 1 )} ),
Dispatch( {}, "Oneway Anova", OutlineBox, {Close( 1 )} ),
Dispatch( {"Oneway Anova"}, "Analysis of Variance", OutlineBox, {Close( 1 )} )
)
);
// Take the elements from the outout and place in the window
// The display produces all levels of the by across one level
// of by group and then moves onto the next by group. Therefore
// the displays need to be picked across the full range of outputs
// to get the four grqaphs aligned
numCols = N Items( view ) / 4;
For( col = 1, col <= numCols, col++,
For( theRow = 1, theRow <= 4, theRow++,
lub << append( Report( view[(theRow - 1) * numCols + col] ) );
i++;
)
)
;
Ri: Come creare script per raggruppare per gestire un numero flessibile di gruppiCiao,
Ricevo un errore intorno alla chiamata i ++ nell'ultimo bit del codice. Non vedo una variabile, io, inizializzata in precedenza nel codice. A cosa si riferisce?
Andy