Gibt es eine Möglichkeit, einen Bericht für zwei Spaltenumschalter gleichzeitig zu erstellen?Hallo,
Ich wollte einen multiplen t-Test durchführen, bei dem ich eine Liste mit mehreren X- und Y-Werten habe. Gibt es eine Möglichkeit, dies mithilfe eines Skripts zu tun? Ich habe das Skript, das ich für den 1-Spalten-Umschalter verwende, leicht modifiziert, aber ich kann nicht herausfinden, wie ich beides gleichzeitig tun kann. Zum Beispiel dieser kleinere Test (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;
);
Automatisierung und SkriptingBetreff: Gibt es eine Möglichkeit, einen Bericht für zwei Spaltenumschalter gleichzeitig zu erstellen?Sie verwenden in Ihren Schleifen falsche Objektreferenzen zum Spaltenumschalter (die innere Schleife mit N Elementen (colswitch_list2) sollte colSwitcher_obj2 << Weiter ändern).

Auch verwenden

beim Posten von JSL in der JMP-Community, da es das Lesen des Posts erheblich erleichtert.
Betreff: Gibt es eine Möglichkeit, einen Bericht für zwei Spaltenumschalter gleichzeitig zu erstellen?Sie haben tatsächlich Recht, jetzt funktioniert es perfekt für 10 x 10 Spalten (siehe Skript unten).
Ich habe jedoch das Problem, dass die Umschaltung nicht funktioniert, wenn ich nicht genau die gleiche Anzahl von X-Spalten wie von Y-Spalten habe! Irgendeine Idee, was ich falsch mache?
// Analyse und Spaltenumschalter
Ein Weg(
Y(:Name("553")),
X(:Name("1")),
t-Test (1),
Spaltenumschalter(:Name("1"), {:Name("1"), :Name("2"), :Name("3"), :Name("4"), :Name("5"), :Name("6"), :Name("7"), :Name("8"), :Name("9"), :Name("10")}),
Spaltenumschalter(:Name("553"), {:Name("553"), :Name("554"), :Name("555"), :Name("556"), :Name("557"), :Name("558"), :Name("559"), :Name("560"), :Name("561"), :Name("562")}));
//Berichterstellung
rpt = Aktueller Bericht();
colswitcher_obj = rpt[ColumnSwitcherCOntextOutlinebox( 1 )] << skriptfähiges Objekt abrufen;
colswitcher_obj2 = rpt[ColumnSwitcherCOntextOutlinebox( 2 )] << skriptfähiges Objekt abrufen;
colswitch_list = colswitcher_obj << Liste abrufen;
colswitch_list2 = colswitcher_obj2 << Liste abrufen;
// Durchlaufe jede Y-Variable
Für (j = 1, j <= N Elemente (colswitch_list), j++,
// Durchlaufe jede X-Variable
Für (k = 1, k <= N Elemente (colswitch_list2), k++,
/* Hier ändern */
dt1 = rpt[Outline Box( "t Test" )][Table Box( 1 )] << Kombinierte Datentabelle erstellen;
/* Tabellen verketten */
Wenn (j == 1 und k == 1,
main_tb = dt1;
main_tb << Name festlegen ("Alle");
,
Versuchen Sie (main_tb << Verketten (dt1, An erste Tabelle anhängen));
Schließen(dt1, Kein Speichern);
);
// Zur nächsten X-Spalte wechseln
colSwitcher_obj << Weiter;
warte(0);
);
// Zur nächsten Y-Spalte wechseln
colSwitcher_obj2 << Weiter;
warte(0);
);
Betreff: Gibt es eine Möglichkeit, einen Bericht für zwei Spaltenumschalter gleichzeitig zu erstellen?Schwer zu sagen, ohne etwas über Ihre Daten zu wissen. Sie könnten beispielsweise auf ein Problem stoßen, bei dem eine Ihrer Spalten eine große Anzahl von Kategorien enthält und dies Probleme verursacht. Vielleicht könnte das Hinzufügen von wait(0); nach jedem << next etwas helfen, aber das Skript wird höchstwahrscheinlich trotzdem sehr langsam sein.
Außerdem glaube ich, dass Sie zumindest für Ihre K-Variable eine falsche Maximalanzahl verwenden (sollte es nicht N Items(col_switch_list2) sein).
Betreff: Gibt es eine Möglichkeit, einen Bericht für zwei Spaltenumschalter gleichzeitig zu erstellen?Ich habe mein Problem mit dem folgenden Skript behoben, aber wenn ich es auf der gesamten Datenbank ausführe, stürzt JMP ab (ich nehme an, ein Speicherproblem). Irgendeine Idee, wie ich das Speicherproblem umgehen könnte?
Ein Weg(
Y( :Name( "A" ) ),
X( :Name( "1" ) ),
t Test( 1 ),
Spaltenumschalter( :Name( "1" ), {:Name( "1" ), :Name( "2" ), :Name( "3" )} ),
Spaltenumschalter(
:Nennen Sie ein" ),
{:Name( "A" ), :Name( "B" ), :Name( "C" )}
)
);
rpt = Aktueller Bericht();
colswitcher_obj = rpt[ColumnSwitcherCOntextOutlinebox( 1 )] << skriptfähiges Objekt abrufen;
colswitcher_obj2 = rpt[ColumnSwitcherCOntextOutlinebox( 2 )] << skriptfähiges Objekt abrufen;
colswitch_list = colswitcher_obj << Liste abrufen;
// Durchlaufe jede Y-Variable
Für (j = 1, j <= N Elemente (colswitch_list), j++,
// Durchlaufe jede X-Variable
Für (k = 1, k <= N Elemente (colswitch_list), k++,
/* Hier ändern */
dt1 = rpt[Outline Box( "t Test" )][Table Box( 1 )] << Kombinierte Datentabelle erstellen;
/* Tabellen verketten */
Wenn (j == 1 und k == 1,
main_tb = dt1;
main_tb << Name festlegen ("Alle");
,
Versuchen Sie (main_tb << Verketten (dt1, An erste Tabelle anhängen));
Schließen(dt1, Kein Speichern);
);
// Zur nächsten X-Spalte wechseln
colSwitcher_obj << Weiter;
);
// Zur nächsten Y-Spalte wechseln
colSwitcher_obj2 << Weiter;
);
Betreff: Gibt es eine Möglichkeit, einen Bericht für zwei Spaltenumschalter gleichzeitig zu erstellen?Gibt es einen bestimmten Grund, hierfür den Spaltenumschalter zu verwenden? Sie können einfach eine Schleife über Ihre Spalten ausführen, den Bericht dabei neu erstellen und die Ergebnisse extrahieren.