Wählen Sie Zeilen mit Maximalwerten in einer Spalte ausIch kann die Zusammenfassung verwenden, um die Höchstwerte (mehrere aufgrund von Gruppen) in einer Spalte zu finden. Allerdings möchte ich auch nachschauen, in welchen Zeilen der Originaltabelle die Maxima auftreten.
Gibt es eine einfache Lösung? Vielen Dank für Ihre Hilfe!Betreff: Zeilen mit Maximalwerten in einer Spalte auswählenHallo, es tut mir leid, auf einen alten Thread zu antworten, aber ich kann an anderer Stelle keine relevanten Beispiele finden.
Ich möchte nach Gruppe zusammenfassen und dann die Zeilen auswählen, die die maximale Gewichtung nach Gruppe haben.
Ich konnte eine Zusammenfassung erstellen, weiß aber nicht, wie ich diese Zeilen auswählen soll.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << clear select;
Summarize( g = by( :age, :sex ), m = Max( :weight ) );
/* How to select those rows summarized by group?
Danke
Betreff: Zeilen mit Maximalwerten in einer Spalte auswählen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Fantastische Lösung. Das ist genau das, was ich gesucht habe!
Betreff: Zeilen mit Maximalwerten in einer Spalte auswählenSie können auch verwenden ERHALTEN SIE ZEILEN WO :
IhrArray = dt << Holen Sie sich Zeilen wo ( : Spaltenname == Höchstwert ) ;
Der Vorteil von get rows where besteht darin, dass a) es sich um einen Schritt und nicht um zwei handelt und b) in Ihrer Tabelle keine Zeilen ausgewählt sind.Wenn Sie die ausgewählten Zeilen benötigen, reicht der von MOSFETtestEng gezeigte Ansatz aus.
Betreff: Zeilen mit Maximalwerten in einer Spalte auswählenIch weiß, dass dies zwei Jahre später ist, aber dies ist für alle gedacht, die diesen Beitrag mit der gleichen Frage gefunden haben.
Probieren Sie die Funktion „Get Selected Rows“ in Ihrem Skript aus.
yourarray = dt << Get Selected Rows;
Das Array „yourarray“ enthält nun eine Liste der ausgewählten Zeilennummern.
Versuchen Sie, die Zeilen mit dem Maximalwert zu finden
// finds the maximum value in the columnt
peakvalue = Col Max( :columname);
// selects all rows with the maximum value. (dt is the name of the data table.)
dt << Select Where( :columnname == peakvalue);
// stores a list of the row numbers with the maximum value in this array
yourarray = dt << Get Selected Rows;
Betreff: Zeilen mit Maximalwerten in einer Spalte auswählenIch habe JMP10 bekommen und dieses Problem noch einmal untersucht.„Verbinden“ mithilfe der Spaltenübereinstimmung funktioniert gut.Ich denke, die Aktualisierung der Tabelle wäre noch einfacher.
Betreff: Zeilen mit Maximalwerten in einer Spalte auswählenFor Each Row() kann bei großen Tabellen ineffizient sein.
Select Where() wird wahrscheinlich schneller sein:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << clear select;
Summarize( g = by( :age ), m = Max( :height ) );
dt<<SELECT where=""></SELECT>
Betreff: Zeilen mit Maximalwerten in einer Spalte auswählenDas Drehbuch sieht gut aus. Ich werde es versuchen und berichten.
Was mich überrascht hat, ist, dass JMP selbst den Index (Zeilennummer) des Datenmaximums nicht irgendwo speichert.
DongBetreff: Zeilen mit Maximalwerten in einer Spalte auswählenTut mir leid, du hast recht. Ich war zu schnell mit der Antwort. Ich werde meinen fehlerhaften Beitrag oben korrigieren
Was ich vorschlagen wollte, ist, dass Sie versuchen können, Zusammenfassung mit Aktualisieren zu kombinieren (oder Beitreten, ich bin nicht sicher, ob Aktualisierung im JMP7-Tabellenmenü gefunden wird).
Hier ist ein Skriptbeispiel, das funktionieren sollte, bei sehr großen Datentabellen jedoch möglicherweise unwirksam ist.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << clear select;
Summarize( g = by( :sex ), m = Max( :age ) );
For( j = 1, j <= N Items( g ), j++,
For Each Row( If( :sex == g[j] & :age == m[j], Row State() = Selected State( 1 ) ) )
);
Betreff: Zeilen mit Maximalwerten in einer Spalte auswählenMS,
Danke. Ich habe es ausprobiert und wähle immer noch alle Zeilen in der Originaltabelle aus, wenn ich die zweite Übersichtstabelle auswähle. Immer wenn ich eine Zeile (Max für die Gruppe) in der Übersichtstabelle auswähle, wird auch jede Zeile in der ersten Übersichtstabelle der Gruppe ausgewählt.
Ich hoffe, dass ich Ihre Anweisungen richtig befolge. Trägt die zweite Übersichtstabelle den Namen „DataTable By (group, data) By (group)“?
Zu Ihrer Information, ich verwende JMP7.
DongBetreff: Zeilen mit Maximalwerten in einer Spalte auswählenJeff,
Danke. Dies scheint eine neue Funktion von JMP 9 zu sein. Ich verwende JMP 7. Ich schätze, ich kann ein Upgrade anfordern.
Außerdem versuche ich, mehrere Maxima in einer Spalte auszuwählen. Die Höchstwerte gehören zu verschiedenen Gruppen, die in anderen Spalten angegeben sind.
DongBetreff: Zeilen mit Maximalwerten in einer Spalte auswählenZeilen->Zeilenauswahl->Dominant auswählen wählt die Zeilen mit den maximalen (oder minimalen) Werten in einer Spalte oder Spaltengruppe aus.
Ich glaube, das wird Ihnen das bringen, wonach Sie suchen.
JeffBetreff: Zeilen mit Maximalwerten in einer Spalte auswählenSie können die Originaltabelle mit der Übersichtstabelle abgleichen, indem Sie „Aktualisieren“ (Menü „Tabellen“) verwenden, wobei Gruppenspalte(n) = Gruppenspalte(n) und Daten = max(Daten) als übereinstimmende Spalten gelten. Die maximale Anzahl an Zeilen wird durch nicht fehlende Zellen in der hinzugefügten Spalte „NRows“ gekennzeichnet.
Meine erste Antwort basierte auf schlampigem Denken ...
Die Nachricht wurde bearbeitet von: MS