Vorbewertete Statistiken (Col Mean, Col Median) in LoopHallo,
Ich versuche, den Mittelwert und Median der Standardabweichung nach Gruppe für mehrere Spalten in JSL zu berechnen. Die Datentabelle, die ich verwende, ist unten gezeigt und beigefügt. Ich habe die korrekten Berechnungen in den Spalten rechts neben den Werten überprüft, aber die JSL-Ausgabe stimmt nicht genau überein. Der folgende Code berechnet den Mittelwert der Standardabweichung nach Gruppe für beide Werte korrekt, aber der Median wird nur für den ersten Wert korrekt berechnet; das Ergebnis für den Median des zweiten Werts ist genau dasselbe wie das, was für den ersten Wert berechnet wurde. Ich kann nicht herausfinden, warum die Mittelwerte in der Schleife korrekt aktualisiert werden, aber nicht die Medianwerte. Jede Hilfe dazu ist willkommen und bitte lassen Sie mich wissen, was die beste Methode in JSL ist, dies zu tun.

JSL:
For( i = 2, i < 4, i++,
N = Column Name( i );
Print( "i = " || Char( i ) );
Print( "Column Name = " || Char( Column Name( i ) ) );
Print( "Column Mean Std Dev by Group = " || Char( Col Mean( Col Std Dev( N, :Group ) ) ) );
Print( "Column Median Std Dev by Group = " || Char( Col Median( Col Std Dev( N, :Group ) ) ) );
);
JSL-Ausgabe:
"i = 2"
"Column Name = Value 1"
"Column Mean Std Dev by Group = 3.9849040980727"
"Column Median Std Dev by Group = 3.60555127546399"
"i = 3"
"Column Name = Value 2"
"Column Mean Std Dev by Group = 5.14008843607314"
"Column Median Std Dev by Group = 3.60555127546399"
JMP Pro v16
Danke
AnalytikSkripterstellungRe: Vorbewertete Statistiken (Col Mean, Col Median) in LoopSie könnten es immer noch in einer Schleife ausführen, aber verwenden Sie Summarize anstelle von Funktionen Col-Funktionen, die möglicherweise nicht mit byVar funktionieren. Dies ist eine Möglichkeit:
Names Default To Here(1);
dt = Current Data Table();
col_list = {"Value 1", "Value 2"};
For Each({col_name}, col_list,
Summarize(dt, groups = By(:Group), v_std = StdDev(Eval(col_name)));
Show(col_name, v_std);
Show(Mean(v_std));
Show(Median(v_std));
);
Hier ist eine andere Option mit Zusammenfassungstabelle, die verwendet werden könnte (zwei Möglichkeiten für Berechnungen):
Names Default To Here(1);
dt = Current Data Table();
col_list = {"Value 1", "Value 2"};
dt_summary = dt << Summary(
Group(:Group),
Std Dev(EvalList({col_list})),
Freq("None"),
Weight("None"),
statistics column name format("column"),
Link to original data table(0),
invisible
);
For Each({col_name}, col_list,
mea = Mean(dt_summary[0, col_name]);
med = Median(dt_summary[0, col_name]);
// or
mea1 = Col Mean(As Column(col_name));
med1 = Col Median(As Column(col_name));
Show(col_name, mea, med, mea1, med1);
);
Close(dt_summary, no save);
Re: Vorbewertete Statistiken (Col Mean, Col Median) in LoopIch stimme zu, das sieht nach dem richtigen Weg aus, damit umzugehen. Es ist jedoch darauf angewiesen, alle Spaltennamen einzutippen. Gibt es eine Möglichkeit, es für viele Spalten zu verallgemeinern, ohne den Spaltennamen zu kennen? Das war der Hauptgrund, die For-Schleife in meinem Code zu verwenden.
Re: Vorbewertete Statistiken (Col Mean, Col Median) in LoopZusammenfassen sollte hier ziemlich gut funktionieren:
Names Default To Here(1);
dt = Current Data Table();
Summarize(dt, groups = By(:Group), v1_std = StdDev(:Value 1), v2_std = StdDev(:Value 2));
Show(groups, v1_std, v2_std);
Show(Mean(v1_std));
Show(Mean(v2_std));
Show(Median(v1_std));
Show(Median(v2_std));<BR /><BR />/*groups = {"A", "B", "C", "D"};<BR />v1_std = [3.60555127546399, 2.64575131106459, 3.60555127546399, 6.08276253029822];<BR />v2_std = [7.23417813807024, 8.9628864398325, 0.577350269189626, 3.78593889720018];<BR />Mean(v1_std) = 3.9849040980727;<BR />Mean(v2_std) = 5.14008843607314;<BR />Median(v1_std) = 3.60555127546399;<BR />Median(v2_std) = 5.51005851763521;*/Re: Vorbewertete Statistiken (Col Mean, Col Median) in LoopDer Grund für die Durchführung der Berechnungen auf diese Weise ist, dass ich das Ergebnis in ein Skript einspeisen möchte, das die Daten in jeder Spalte separat darstellt und die berechneten Werte für obere und untere Plotgrenzen verwendet.
Re: Vorbewertete Statistiken (Col Mean, Col Median) in LoopGibt es einen Grund, solche Berechnungen mit Schleifen und mit Formeln durchzuführen? JMP bietet Ihnen Zusammenfassung (Tabelle), Zusammenfassen und Tabellieren, was je nach dem, was Sie versuchen, bessere Optionen sein könnten.
Beim Schleifen bin ich mir nicht sicher, ob Sie wirklich Col-Funktionen wie bei der Verwendung von byVar loopen können (oder sollten), da sie etwas seltsam ausgewertet werden.
