Zeigen Sie ein Textfeld an, in dem Sie um Eingaben vom Benutzer gebeten werdenHi,
Ich möchte ein Textbearbeitungsfeld hinzufügen, in dem der Benutzer aufgefordert wird, Werte für das Q- und das Tail-Quantil einzugeben, um Ausreißer zu untersuchen. Hier ist, was ich versucht habe, aber es scheint, als würde ich etwas verpassen. Können Sie einen Rat geben, der dabei helfen könnte?
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Water Treatment.jmp");
check_list = {"SS", "SE", "PH"};
todo_list = {};
nw = new window("Checkboxes", << modal(),
"Input",
V List Box( Text Box( "Enter Tail Quantile " ), tail = Text Edit Box() ,
Text Box( "Enter Q Value " ), quan = Text Edit Box() ),
my_cb = checkbox(check_list),
panelbox("Actions",
hlistbox(
button box("OK",
ta = tail << get text();
qu = quan << get text();
keep_going = 1;
todo_list = my_cb << get selected;
),
button box("Cancel", keep_going = 0)
),
),
);
For(i = 1, i <= N Items(colList), i++,
If(Contains(colList[i], "SS"), Insert Into(filteredCols, colList[i]))
);
obj = dt <<
Explore Outliers(
Y((Eval(filteredCols) )));
obj << Quantile Range Outliers;
obj << Tail Quantile (ta);
obj << Q(qu);
obj << Select Rows(All);
SkriptingBetreff: Ein Textfeld anzeigen, in dem um Eingaben vom Benutzer gebeten wirdSowohl das Schwanzquantil als auch die Q-Einträge müssen numerisch sein, keine Zeichenfolge/Text.Verwenden Sie zum Konvertieren die Funktion Num().
Betreff: Ein Textfeld anzeigen, in dem um Eingaben vom Benutzer gebeten wirdEin paar Modifikationen - Ihr ursprünglicher Code hat einige Dinge nicht initialisiert.Ich habe number edit box () und lineup box () für ein schöneres Aussehen verwendet.Das Nummernbearbeitungsfeld ermöglicht nur die Eingabe von Nummern.

Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Water Treatment.jmp");
check_list = {"SS", "SE", "PH"};
todo_list = {};
nw = new window("Checkboxes", << modal(),
text box("Input"),
Lineup Box( N Col( 2 ),
Text Box( "Enter Tail Quantile: " ), tail = number Edit Box() ,
Text Box( "Enter Q Value: " ), quan = number Edit Box()
),
my_cb = checkbox(check_list),
panelbox("Actions",
hlistbox(
button box("OK",
ta = tail << get();
qu = quan << get();
keep_going = 1;
todo_list = my_cb << get selected;
),
button box("Cancel", keep_going = 0)
),
),
);
collist = dt << get column names(string);
filteredcols = {};
For(i = 1, i <= N Items(colList), i++,
If(Contains(colList[i], "SS"), Insert Into(filteredCols, colList[i]))
);
obj = dt << Explore Outliers( Y((Eval(filteredCols) )));
obj << Quantile Range Outliers;
obj << Tail Quantile (ta);
obj << Q(qu);
obj << Select Rows(All);Betreff: Ein Textfeld anzeigen, in dem um Eingaben vom Benutzer gebeten wirdVielen Dank @pmroz ,
Das Skript funktioniert einwandfrei, aber das Problem besteht darin, dass die Standardwerte verwendet werden, um die Ausreißer auszuwerten, nicht die Eingabewerte. Siehe Screenshot unten
Die folgende Analyse basiert auf einem Schwanzquantil von 0,1 und einem Q von 3. Ich habe 0,4 eingegeben. und 3 im Feld bearbeiten. Ich habe es satt, die Wiederholungsanalyse zu verwenden, aber es werden nicht alle Zeilen im Fenster ausgewählt. Irgendein Rat?
