Esiste un modo per creare un report per il commutatore a 2 colonne contemporaneamente?CIAO,
Volevo eseguire più t-test in cui ho un elenco di più X e Y. C'è un modo per farlo utilizzando uno script? Ho modificato leggermente lo script che sto utilizzando per il commutatore di 1 colonna ma non riesco a capire come eseguirli entrambi contemporaneamente. Ad esempio questo test più piccolo (3x3):
Oneway(
Y(:Name("A")),
X(:Name("1")),
t Test(1),
Column Switcher(:Name("A"), {:Name("A"), :Name("B"), :Name("C")}),
Column Switcher(:Name("1"), {:Name("1"), :Name("2"), :Name("3")})
);
rpt = Current Report();
colswitcher_obj = rpt[ColumnSwitcherCOntextOutlinebox(1)] << get scriptable object;
colswitch_list = colswitcher_obj << get list;
/* Loop through each column in the colswitch_list */
For(i = 1, i <= N Items(colswitch_list), i++,
/* Change here */
dt1 = rpt[Outline Box("t Test")][Table Box(1)] << make combined data table;
/* Concatenate the tables */
If(i == 1,
main_tb = dt1;
main_tb << Set Name("All");
,
Try(main_tb << Concatenate(dt1, Append to First Table));
Close(dt1, No Save);
);
/* Close temporary tables and switch next column */
colSwitcher_obj << Next;
);
Automazione e scriptingRi: Esiste un modo per creare un report per il commutatore a 2 colonne contemporaneamente?Stai utilizzando riferimenti errati all'oggetto del commutatore di colonna all'interno dei tuoi cicli (il ciclo interno che ha N elementi (colswitch_list2) dovrebbe cambiare colSwitcher_obj2 << Avanti).

Anche usare

quando si pubblica JSL nella community JMP in quanto rende la lettura del post molto più semplice.
Ri: Esiste un modo per creare un report per il commutatore a 2 colonne contemporaneamente?In effetti hai ragione, ora funziona perfettamente per 10x10 colonne (vedi script sotto).
Ma ho un problema: se non ho esattamente lo stesso numero di colonne X e di colonne Y, il cambio non funziona! Qualche idea per favore su cosa sto facendo di sbagliato?
// Analisi e commutatori di colonna
Senso Unico(
Y(:Nome("553")),
X(:Nome("1")),
t Prova(1),
Selettore colonna(:Nome("1"), {:Nome("1"), :Nome("2"), :Nome("3"), :Nome("4"), :Nome("5" ), :Nome("6"), :Nome("7"), :Nome("8"), :Nome("9"), :Nome("10")}),
Selettore colonna(:Nome("553"), {:Nome("553"), :Nome("554"), :Nome("555"), :Nome("556"), :Nome("557" ), :Nome("558"), :Nome("559"), :Nome("560"), :Nome("561"), :Nome("562")}));
//Creazione del rapporto
rpt = Rapporto corrente();
colswitcher_obj = rpt[ColumnSwitcherCOntextOutlinebox( 1 )] << ottieni oggetto scriptabile;
colswitcher_obj2 = rpt[ColumnSwitcherCOntextOutlinebox( 2 )] << ottieni oggetto scriptabile;
colswitch_list = colswitcher_obj << ottieni elenco;
colswitch_list2 = colswitcher_obj2 << ottieni elenco;
// Passa attraverso ciascuna variabile Y
For(j = 1, j <= N elementi(colswitch_list), j++,
// Passa attraverso ciascuna variabile X
For(k = 1, k <= N elementi(colswitch_list2), k++,
/* Cambia qui */
dt1 = rpt[Riquadro di contorno( "t Test" )][Riquadro di tabella( 1 )] << Crea tabella di dati combinati;
/* Concatena le tabelle */
Se(j == 1 & k == 1,
main_tb = dt1;
main_tb << Imposta nome("Tutti");
,
Prova (main_tb << Concatena (dt1, Aggiungi alla prima tabella));
Chiudi (dt1, nessun salvataggio);
);
// Passa alla colonna X successiva
colSwitcher_obj << Avanti;
attendere(0);
);
// Passa alla colonna Y successiva
colSwitcher_obj2 << Avanti;
attendere(0);
);
Ri: Esiste un modo per creare un report per il commutatore a 2 colonne contemporaneamente?Difficile dirlo senza sapere nulla dei tuoi dati. Potresti, ad esempio, riscontrare un problema in cui una delle tue colonne ha un'enorme quantità di categorie e ciò causa problemi. Forse aggiungendo wait(0); after each << next potrebbe aiutare un po', ma molto probabilmente lo script sarà comunque molto lento.
Inoltre, penso che tu stia utilizzando un conteggio massimo errato almeno per la tua variabile k (non dovrebbe essere N Items(col_switch_list2)).
Ri: Esiste un modo per creare un report per il commutatore a 2 colonne contemporaneamente?Ho risolto il mio problema con il seguente script, ma quando lo eseguo sull'intero database, JMP si blocca (problema di memoria presumo), hai idea di come potrei aggirare il problema della memoria?
Senso Unico(
Y( :Nome( "A") ),
X( :Nome( "1") ),
t Prova( 1 ),
Selettore colonna(:Nome( "1" ), {:Nome( "1" ), :Nome( "2" ), :Nome( "3" )} ),
Commutatore di colonna(
:Nome( "A" ),
{:Nome( "A" ), :Nome( "B" ), :Nome( "C")}
)
);
rpt = Rapporto corrente();
colswitcher_obj = rpt[ColumnSwitcherCOntextOutlinebox( 1 )] << ottieni oggetto scriptabile;
colswitcher_obj2 = rpt[ColumnSwitcherCOntextOutlinebox( 2 )] << ottieni oggetto scriptabile;
colswitch_list = colswitcher_obj << ottieni elenco;
// Passa attraverso ogni variabile Y
For(j = 1, j <= N elementi(colswitch_list), j++,
// Passa attraverso ciascuna variabile X
For(k = 1, k <= N elementi(colswitch_list), k++,
/* Cambia qui */
dt1 = rpt[Riquadro di contorno( "t Test" )][Riquadro di tabella( 1 )] << Crea tabella di dati combinati;
/* Concatena le tabelle */
Se(j == 1 & k == 1,
main_tb = dt1;
main_tb << Imposta nome("Tutti");
,
Prova (main_tb << Concatena (dt1, Aggiungi alla prima tabella));
Chiudi (dt1, nessun salvataggio);
);
// Passa alla colonna X successiva
colSwitcher_obj << Avanti;
);
// Passa alla colonna Y successiva
colSwitcher_obj2 << Avanti;
);
Ri: Esiste un modo per creare un report per il commutatore a 2 colonne contemporaneamente?C'è un motivo specifico per utilizzare il commutatore di colonna per questo? Potresti semplicemente ripetere le colonne, ricreare il report mentre procedi ed estrarre i risultati.