Zeilenauswahl basierend auf mehreren Spalten und mehreren Kriterien<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo Leute,
Ich habe die verfügbaren Threads zur Zeilenauswahl gelesen, kann aber immer noch keine Formel kompilieren, um das zu erreichen, was ich brauche (sorry - ich bin noch SEHR unerfahren ...).
Ich habe eine Tabelle, die so aussieht:
| Person | Verbindung | Dosis | Einheiten |
| Schmied | Aspirin | 200 | mg |
| Schmied | Aspirin | 150 | mg |
| Jones | Gabapentin | 20 | ug |
| Jones | Gabapentin | 30 | ug |
| Jones | NyQuil | 60 | ml |
| Edison | Motrin | 600 | mg |
| Edison | Motrin | 600 | mg |
Für jede Person muss ich mir die Spalte Verbindung ansehen und für jede Verbindung dann die Dosen betrachten und die Zeile mit der höheren Dosis auswählen. Wenn eine Person zwei Verbindungen verwendet hat, muss ich die Dosisbewertung nur für eine Kombination mit mehreren Dosen durchführen. Wenn ich mich also durch diese Tabelle arbeite, sollte ich eine neue Tabelle wie folgt erhalten:
| Person | Verbindung | Dosis | Einheiten |
| Schmied | Aspirin | 200 | mg |
| Jones | Gabapentin | 30 | ug |
| Jones | NyQuil | 60 | ml |
| Edison | Motrin | 600 | mg |
Kann jemand bitte helfen? Wird sehr geschätzt!!!!!
Betreff: Zeilenauswahl basierend auf mehreren Spalten und mehreren KriterienDanke Jungs!
Ich habe alle drei Lösungen ausprobiert - und den Tisch bekommen, den ich wollte.
Es ist viel einfacher als ich dachte - und ich liebe Zusammenfassungs- und Tabellenfunktionen!!
Danke noch einmal
Tanja
Betreff: Zeilenauswahl basierend auf mehreren Spalten und mehreren KriterienByron ist richtig. Ich war etwas zu schnell und habe vergessen, dass, wenn zwei Personen nacheinander dieselbe Verbindung einnehmen, mein Zustand die erste nicht erfasst.
Hier ist eine korrigierte Formel und Datentabelle.
Selected State( :Compound != :Compound[Row() + 1] | :Person != :Person[Row() + 1] )

Dieses Mal wird die Zeile ausgewählt, wenn die Verbindung oder die Person nicht mit der nächsten Zeile übereinstimmt.
Betreff: Zeilenauswahl basierend auf mehreren Spalten und mehreren KriterienIch bin altmodisch und mein erster Impuls ist, den älteren Tables > Summary-Ansatz zu verwenden, der der Verwendung von Tabulate sehr ähnlich ist.
1. Tabellen > Zusammenfassung
2. Ziehen Sie Person und dann Compound in das Feld Group
3. Klicken Sie auf Dosis und dann auf die Schaltfläche Statistik und wählen Sie Max aus
4. Klicken Sie auf OK
oder als Skript:
dt = aktuelle Datentabelle ();
dt << Summary( Group( :Person, :Compound ), Max( :Dose ) )
Michael
Betreff: Zeilenauswahl basierend auf mehreren Spalten und mehreren KriterienEs sieht so aus, als müsste die Logik zum Auswählen der gekennzeichneten Zeilen etwas spezifischer sein?
If( :Person == Lag( :Person, 1 ) & :Compound == Lag( :Compound, 1 ), 0, 1)
Versuchen Sie, dieses Skript anhand der Dosistabelle in Jeffs Beitrag auszuführen, und führen Sie dann zuerst das Sortierskript aus, gefolgt vom Subset-Skript.
dt=aktuelle Datentabelle();
dt<
By( :Person, :Compound, :Dose ), Order( Aufsteigend, Aufsteigend, Aufsteigend )););
dt<
dt << Subset( Output Table( "Subset of dose bw" ), Ausgewählte Zeilen( 0 ), Zeilen( [1, 3, 5, 6] ), Nur ausgewählte Spalten( 0 )););
dt<
Numerisch, Nominal, Format( "Beste", 12 ),
Formel( If( :Person == Lag( :Person, 1 ) & :Compound == Lag( :Compound, 1 ),
0, 1 ) ));
Betreff: Zeilenauswahl basierend auf mehreren Spalten und mehreren KriterienPMoz hat eine gute Lösung.
Hier ist ein anderes.
Sortieren Sie Ihre Tabelle nach Name, Verbindung, (aufsteigender) Dosis.
Erstellen Sie dann eine Spalte Zeilenstatus ( Spalten -> Neue Spalte ).

Und füge ein hinzu Formel .

Die Formel sollte lauten:
Selected State( :Compound != :Compound[Row() + 1] )
Im Formeleditor sieht das so aus:

Dadurch wird jede Zeile ausgewählt, in der sich der Verbindungsname von dem Verbindungsnamen in der nächsten Zeile unterscheidet. Da die Tabelle nach Person, Verbindung und Dosis sortiert ist, stellen diese Zeilen die maximale Dosis für jede Person dar.
Sie können diese Auswahl dann mithilfe des Popup-Menüs neben dem Zeilenstatus-Spaltennamen in den aktiven Zeilenstatusbereich kopieren.

Die Zeilen werden ausgewählt und können verwendet werden Tabellen->Teilmenge um eine neue Datentabelle nur mit den ausgewählten Zeilen zu erhalten.
Ich habe eine Datentabelle angehängt, die dies zeigt.
-Jeff
Betreff: Zeilenauswahl basierend auf mehreren Spalten und mehreren KriterienSie können dies mit einer Tabelle tun:
| Person | Verbindung | max |
| Edison | Motrin | 600 |
| Jones | Gabapentin | 30 |
| NyQuil | 60 |
| Schmied | Aspirin | 200 |
Klicke auf Analysieren > Tabellieren (JMP 11) bzw Tabellen > Tabellieren (JMP 10, 9, 8)
Ziehen Person zur Dropzone für Reihen.
Ziehen Verbindung gleich rechts davon Person
Ziehen Dosis auf N
Ziehen max auf Summe
Klicken Getan
Klicken Sie auf das kleine rote Dreieck und wählen Sie es aus In Datentabelle machen
Möglicherweise müssen Sie die Einheiten normalisieren, wenn dies eine Überlegung ist.