Wie schreibe ich eine for-Schleife, um eine Oneway-ANOVA über alle Y-Spalten in einer Datentabelle auszuführen?Ich habe eine große Datentabelle mit 10.000 verschiedenen Spaltennamen und einer kleinen Anzahl von Zeilen, die Replikate aus 5 verschiedenen Probengruppen enthalten, einschließlich einer Kontrollgruppe mit der Bezeichnung "HN30".Ich habe ein Skript, das einen Einweg-ANOVA- und Dunnett-Post-Hoc-Mittelwertvergleichstest (dh Mittelwertvergleich) mit der Kontrollgruppe (HN30) ausführt, wenn ich jede Y-Variable einzeln spezifiziere. Ich möchte jedoch nicht alle 10.000 verschiedenen Spaltennamen eingeben oder aufgefordert werden, einen Dunnett-Test durchzuführen oder den Kontrollnamen für jede Spaltenanalyse einzugeben.Kann mir jemand helfen, eine for-Schleife zu schreiben, die die Befehle nacheinander durch alle Spalten iteriert? Sobald ich die Ausgabe erhalten habe, weiß ich, wie ich mit dem Befehl zum Kombinieren von Tabellen alle P-Werte der Ausgabe zusammenführen kann.Im Folgenden finden Sie Informationen zu zwei angegebenen Spalten mit den Namen "SPP1" und "ABCC2", in denen Kontrollgruppenzeilen mit "HN30" gekennzeichnet sind.Sie müssen nur alle Spalten durchlaufen. Vielen Dank !
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 )}
);SkriptingBetreff: Wie schreibe ich eine for-Schleife, um eine Oneway-ANOVA über alle Y-Spalten in einer Datentabelle auszuführenHier ist ein Beispiel für eine Schleife. Wahrscheinlich können Sie sich an Ihre Bedürfnisse anpassen.
Beispiele für die verwendeten Befehle finden Sie bei Bedarf im Skriptindex oder in der Skriptreferenz.
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]^ ) )" ) ) )
);
Betreff: Wie schreibe ich eine for-Schleife, um eine Oneway-ANOVA über alle Y-Spalten in einer Datentabelle auszuführenDanke Georg,
Ich habe Ihr Beispiel an meine spezifische Tabelle angepasst und jetzt alle One-Way-ANOVAs für jede Spalte ausgeführt, damit dieser Teil funktioniert.Ich kann jedoch immer noch nicht herausfinden, wie ich im Dunnett-Test arbeiten soll, um jeder ANOVA zu folgen.Ich bin mir nicht sicher, wie ich diesen Unterbefehl mit der for-Schleife strukturieren soll.Folgendes habe ich bisher, aber ich kann die spezifischen Dunnett-Tests, die ich unten zeige, nicht in der for-Schleife ausführen.Irgendwelche Ideen?Danke noch einmal
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 )}
);Betreff: Wie schreibe ich eine for-Schleife, um eine Oneway-ANOVA über alle Y-Spalten in einer Datentabelle auszuführen?Sie können dies versuchen:
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]^ ) )" ) ) )
);