Come scrivo un ciclo for per eseguire ANOVA unidirezionale su tutte le colonne Y in una tabella datiHo una tabella di dati di grandi dimensioni con 10.000 nomi di colonne differenti e un numero ridotto di righe contenenti repliche da 5 diversi gruppi di campioni, incluso un gruppo di controllo denominato "HN30".Ho uno script che eseguirà un test di confronto della media post-hoc ANOVA e Dunnett unidirezionale (cioè confronto delle medie) con il gruppo di controllo (HN30) se specifico ciascuna variabile Y una alla volta. Tuttavia, non voglio digitare tutti i 10.000 diversi nomi di colonna o che mi venga chiesto di eseguire un test Dunnett o inserire il nome del controllo per ogni analisi di colonna.Qualcuno può aiutarmi a scrivere un ciclo for che itererà i comandi attraverso tutte le colonne uno alla volta. Una volta ottenuto l'output, so come utilizzare il comando Combina tabelle per unire tutti i valori P in uscita.Di seguito è riportato quello che ho che funziona per due colonne specificate denominate "SPP1" e "ABCC2" dove le righe del gruppo di controllo sono etichettate "HN30".Ho solo bisogno di iterare su tutte le colonne. Grazie mille !
Fit Group(
Oneway(
Y( :SPP1 ),
X( :Cell lline ),
With Control( 1, {"HN30"} ),
Comparison Circles( 1 ),
SendToReport(
Dispatch(
{"Means Comparisons",
"Comparisons with a control using Dunnett's Method",
"LSD Threshold Matrix"},
"p-Value",
NumberColBox,
{Set Format( "Fixed Dec", 15, 15 )}
)
)
),
Oneway(
Y( :ABCC2 ),
X( :Cell lline ),
With Control( 1, {"HN30"} ),
Comparison Circles( 1 ),
SendToReport(
Dispatch(
{"Means Comparisons",
"Comparisons with a control using Dunnett's Method",
"LSD Threshold Matrix"},
"p-Value",
NumberColBox,
{Set Format( "Fixed Dec", 15, 15 )}
)
)
),
<<{Arrange in Rows( 1 )}
);ScriptingRi: Come scrivo un ciclo for per eseguire ANOVA unidirezionale su tutte le colonne Y in una tabella di datiEcco un esempio per un ciclo. Probabilmente puoi adattarti alle tue esigenze.
È possibile trovare esempi per i comandi utilizzati nell'indice di scripting o nel riferimento allo scripting, se necessario.
Names Default To Here( 1 );
cdt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
all_ys = cdt << get column names( Continuous, String );
For( i = 1, i <= n items(all_ys), i++,
Eval( Parse( Eval Insert( "oneway( X( :SITE ), Y( :^all_ys[i]^ ) )" ) ) )
);
Ri: Come scrivo un ciclo for per eseguire ANOVA unidirezionale su tutte le colonne Y in una tabella di datiGrazie Georg,
Ho adattato il tuo esempio alla mia tabella specifica e ora ho tutti gli ANOVA One Way in esecuzione per ogni colonna, in modo che quella parte funzioni.Tuttavia, non riesco ancora a capire come lavorare nel test di Dunnett per seguire ogni ANOVA.Non sono sicuro di come strutturare quel sottocomando con il ciclo for.Ecco cosa ho finora, ma non posso eseguire i test Dunnett specifici che mostro in basso nel ciclo for.Qualche idea?Grazie ancora
Names Default To Here( 1 );
cdt = Open( "F:/Stats/DTest.jmp" );
all_ys = cdt << get column names( Continuous, String );
For( i = 1, i <= n items(all_ys), i++,
Eval( Parse( Eval Insert( "oneway( X( :Cell lLine ), Y( :^all_ys[i]^ ) )" ) ) )
);
Fit Group(
Oneway(
Y( :SPP1 ),
X( :Cell lline ),
With Control( 1, {"HN30"} ),
Comparison Circles( 1 ),
SendToReport(
Dispatch(
{"Means Comparisons",
"Comparisons with a control using Dunnett's Method",
"LSD Threshold Matrix"},
"p-Value",
NumberColBox,
{Set Format( "Fixed Dec", 15, 15 )}
)
)
),
Oneway(
Y( :ABCC2 ),
X( :Cell lline ),
With Control( 1, {"HN30"} ),
Comparison Circles( 1 ),
SendToReport(
Dispatch(
{"Means Comparisons",
"Comparisons with a control using Dunnett's Method",
"LSD Threshold Matrix"},
"p-Value",
NumberColBox,
{Set Format( "Fixed Dec", 15, 15 )}
)
)
),
<<{Arrange in Rows( 1 )}
);Ri: Come scrivo un ciclo for per eseguire ANOVA unidirezionale su tutte le colonne Y in una tabella di datipuoi provare questo:
Names Default To Here( 1 );
cdt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
ow_expr = Expr(
Oneway(
Y( Column( all_ys[i] ) ),
X( :SITE ),
/* 3rd site is control */
With Control( 1, {3} ),
Comparison Circles( 1 ),
SendToReport(
Dispatch(
{"Means Comparisons", "Comparisons with a control using Dunnett's Method", "LSD Threshold Matrix"},
"p-Value",
NumberColBox,
{Set Format( "Fixed Dec", 15, 15 )}
)
)
)
);
all_ys = cdt << get column names( Continuous, String );
//For( i = 1, i <= n items(all_ys), i++,
For( i = 1, i <= 3, i++,
Eval( Substitute( ow_expr, Expr( i ), i ) );
// Eval( Substitute( Expr( oneway( X( :SITE ), Y( Column( all_ys[i] ) ) ) ), Expr( i ), i ) )
// Eval( Parse( Eval Insert( "oneway( X( :SITE ), Y( :^all_ys[i]^ ) )" ) ) )
);