Berechnen Sie Col Mean () für eine Teilmenge von Zeilen im JSL-Skript?Hallo JMP-Community,
Was ist die richtige Syntax in JSL für die Berechnung des Spaltenmittelwerts (oder anderer Statistiken) für eine definierte Variable? Teilmenge von Reihen? In einer Datentabelle kann ich einfach die Formel „Col Mean (:Data Column, :Grouping Column)“ verwenden, aber in einem JSL-Skript scheint dies keine korrekte Verwendung zu sein.
Bemerkenswert ist, dass ich darüber nachdenke, rohe Gewalt anzuwenden, indem ich eine „Für jede Zeile“-Struktur verwende, aber das scheint bei der Auswertung von mehr als 200 Spalten mit 1000 Zeilen ziemlich ineffizient zu sein.
Ich danke Ihnen für Ihre Hilfe.
TS
Betreff: Col Mean() für eine Teilmenge von Zeilen im JSL-Skript berechnen?Ich glaube, der einfachste und effizienteste Weg, dies zu tun, ist die Verwendung von
Tabellen==>Zusammenfassung
Dadurch wird sehr schnell eine Datentabelle erstellt, aus der Sie Ihre Statistiken für Ihre JSL abrufen können. Wenn Sie die Statistiken auch wieder in der ursprünglichen Datentabelle benötigen, reicht ein einfaches Update mit Abgleich aus.Der Umgang mit 200 Spalten und 1000 Zeilen ist überhaupt kein Problem.Nachfolgend finden Sie ein einfaches Beispiel, das die Vorgehensweise verdeutlicht.
names default to here(1);
dt=Open("$SAMPLE_DATA/semiconductor capability.jmp");
colNamesLIst = dt << get column names(continuous);
dtStats = dt << Summary(invisible,
Group( :SITE ),
Mean( colNamesList ),
Freq( "None" ),
Weight( "None" ),
Link to original data table(0)
);
dt << Update(
With( dtStats ),
Match Columns( :SITE = :SITE )
);
close( dtStats, nosave );Betreff: Col Mean() für eine Teilmenge von Zeilen im JSL-Skript berechnen?Hallo JMP-Community,
Hier ist, was ich mir mithilfe der Struktur „Für jede Zeile“ ausgedacht habe:
Names Default to Here (1);
dt = Current Data Table ();
ALL_MEAN = Col Mean (:DATA);
MAX_MEAN = -1000;
For Each Row (
if (MAX_MEAN < Col Mean(:DATA, :GROUP,:SGROUP), MAX_MEAN = Col Mean(:DATA, :GROUP,:SGROUP))
);
Show (ALL_MEAN);
Show (MAX_MEAN);
Haben Sie eine Idee, dies effizienter zu gestalten?
Danke,
TS