Schleife für Spaltennamen funktioniert nicht<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo,
Ich bin Novize in JSL. Ich versuche einen Wilcoxon-Test für eine Reihe von Säulen durchzuführen. Meine erste Spalte ist "ID" und die zweite ist "SEX", die ich als Parameter verwendet habe.
Also habe ich den folgenden Code geschrieben, um die Analyse durchzuführen und die Ergebnisse in ein Journal zu exportieren:
dt = Aktuelle Datentabelle ();
column_names = dt << Spaltennamen abrufen;
für (i = 3, i <= Länge (Spaltennamen), i ++,
ow = ow || "
Einweg(
Y (: Name ("|| Spaltennamen) || ")),
X (: SEX),
Wilcoxon-Test (1),
Box Plots (0),
Mittlere Diamanten (0)
); "
);
eval (parse (ow)) << Journal ();
Aber es funktioniert nicht und ich weiß nicht, was mit Code falsch ist.
Ich habe noch eine andere Frage: "Ist es möglich, nur den P-Wert in ein Journal zu exportieren? Ich habe SendToReport (Versand ...) verwendet. ), aber in den Ergebnissen gibt es noch Abschnittstitel. Was ich brauche, ist nur mein Spaltenname und P-Wert. Ist es möglich ?"
Bitte hilf mir.
Danke im Voraus
Re: Loop für Spaltennamen funktioniert nichtLieber Dave,
Vielen Dank für Ihre schnelle und ausführliche Antwort.
Ich arbeite mit JMP8 und es sieht so aus, als ob die Struktur etwas anders ist. In meiner Version bezieht sich "NumberColBox (7)" auf den p-Wert.
Ich freue mich auch über Ihren Tipp, wie Sie die Baumstruktur sehen können. Es ist eine große Hilfe.
Viel Glück
Re: Loop für Spaltennamen funktioniert nichtSo sollte die Ausgabe für das zweite Skript aussehen:

Welche Version von JMP verwenden Sie? Ich habe es erfolgreich auf v9 und v10 ausgeführt.
Schauen Sie sich auch die Protokolldatei an, um zu sehen, ob Fehlermeldungen angezeigt werden.
Die p-Werte werden extrahiert, indem auf das entsprechende Anzeigefeld in der Baumstruktur des Berichts anhand der folgenden Codezeile verwiesen wird:
matPValue = owr [NumberColBox (11)] ;
Der Name der Anzeigebox - NumberColBox (11) - wird anhand der Baumstruktur identifiziert ... Sie können dies also versuchen, um zu überprüfen, ob der Name des Anzeigefelds korrekt ist:
nach der Zeile:
owr = ow << Bericht;
hinzufügen:
owr << Baumstruktur anzeigen;
was wird Ausgabe wie folgt geben:

-Dave
Re: Loop für Spaltennamen funktioniert nichtLieber Dave,
Vielen dank für Deine Hilfe. Es hat mir wirklich Zeit gespart.
Als ich jedoch das zweite Skript ausprobierte, erhielt ich keine Antwort, also änderte ich die Eigenschaft der Ergebnistabelle in "visible" und stellte fest, dass zwar die richtige Anzahl von Zeilen erstellt wurde, die der Anzahl der zu analysierenden Spalten entspricht, es wurden keine Daten eingefügt Ergebnistabelle.
Ich weiß es zu schätzen, wenn Sie mir einen Tipp geben, wie ich es lösen kann.
Vielen Dank im Voraus für Ihre wertvollen Hilfen.
Re: Loop für Spaltennamen funktioniert nichtVersuche dies:
dt = Open ("$ SAMPLE_DATA / Big Class.jmp");
column_names = dt << Get Column Names (numerisch, String);
jw = Neues Fenster ("Demo", << Journal);
für (i = 1, i <= NItems (Spaltennamen), i ++,
colName = Spaltenname ;
cmd = Ausdruck (
ow = Einbahnstraße (
Y (cName),
X (: SEX),
Wilcoxon-Test (1),
Box Plots (0),
Mittlere Diamanten (0);
);
owr = ow << Bericht;
owr << Gliederung (1) << Schließen;
pValues = owr [TableBox (3)];
jw << Append (ob = Gliederungsfeld (colName));
ob << Append (pValues);
ob << Append (owr);
ow << Fenster schließen;
);
Ersetzen in (cmd, Ausdruck (cName), ColName);
Eval (cmd);
);
oder wenn Sie nur den Spaltennamen und den p-Wert wünschen ...
dt = Open ("$ SAMPLE_DATA / Big Class.jmp");
column_names = dt << Get Column Names (numerisch, String);
Ergebnisse = Neue Tabelle ("Ergebnisse", unsichtbar,
Neue Spalte ("Name", Zeichen),
Neue Spalte ("P-Wert", numerisch),
Zeilen hinzufügen (NItems (Spaltennamen))
);
für (i = 1, i <= NItems (Spaltennamen), i ++,
colName = Spaltenname ;
cmd = Ausdruck (
ow = dt << Einbahnstraße (
Y (cName),
X (: SEX),
Wilcoxon-Test (1),
Box Plots (0),
Mittlere Diamanten (0);
);
owr = ow << Bericht;
matPValue = owr [NumberColBox (11)];
pValue = matPValue [1];
Spalte (Ergebnisse, 1) = ColName;
Spalte (Ergebnisse, 2) = pValue;
ow << Fenster schließen;
);
Ersetzen in (cmd, Ausdruck (cName), ColName);
Eval (cmd);
);
Ergebnisse << Journal;
Schließen (Ergebnisse);
-Dave