Selezione delle righe basata su più colonne e più criteri<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hey ragazzi,
Ho letto i thread disponibili sulla selezione delle righe ma non riesco ancora a compilare una formula per realizzare ciò di cui ho bisogno (scusa, sono ancora MOLTO inesperto ..).
Ho una tabella che assomiglia a questa:
| Persona | Composto | Dose | Unità |
| fabbro | Aspirina | 200 | mg |
| fabbro | Aspirina | 150 | mg |
| Jones | Gabapentin | 20 | ug |
| Jones | Gabapentin | 30 | ug |
| Jones | Ny Quil | 60 | ml |
| Edison | Motrin | 600 | mg |
| Edison | Motrin | 600 | mg |
Per ogni persona, devo guardare la colonna Composto e per ogni Composto, quindi guardare le dosi e scegliere la riga con la dose più alta. Se una persona ha usato due composti, devo fare una valutazione della dose solo per un comp con dosi multiple. Quindi, lavorando su questa tabella, dovrei ottenere una nuova tabella come di seguito:
| Persona | Composto | Dose | Unità |
| fabbro | Aspirina | 200 | mg |
| Jones | Gabapentin | 30 | ug |
| Jones | Ny Quil | 60 | ml |
| Edison | Motrin | 600 | mg |
Qualcuno può aiutarmi per favore? Sarà molto apprezzato!!!!!
Oggetto: selezione delle righe basata su più colonne e più criteriGrazie ragazzi!
Ho provato tutte e tre le soluzioni e ho ottenuto il tavolo che volevo.
È molto più semplice di quanto pensassi e adoro le funzioni di riepilogo e tabulazione !!
Grazie ancora
Tania
Oggetto: selezione delle righe basata su più colonne e più criteriByron è giusto. Sono stato un po' troppo veloce e ho dimenticato che se due persone in sequenza stanno assumendo lo stesso composto, allora la mia condizione non prenderà il primo.
Ecco una formula corretta e una tabella di dati.
Selected State( :Compound != :Compound[Row() + 1] | :Person != :Person[Row() + 1] )

Questa volta seleziona la riga se il composto o la persona non corrisponde alla riga successiva.
Oggetto: selezione delle righe basata su più colonne e più criteriSono vecchio stile e il mio primo impulso è utilizzare il vecchio approccio Tabelle> Riepilogo che è molto simile all'utilizzo di Tabulate.
1. Tabelle > Riepilogo
2. Trascina Persona, quindi Composto nella casella Gruppo
3. Fare clic su Dose, quindi fare clic sul pulsante Statistiche e selezionare Max
4. Fare clic su OK
o come script:
dt = tabella dati corrente();
dt << Riepilogo( Gruppo( :Persona, :Composto ), Max( :Dose ) )
Michael
Oggetto: selezione delle righe basata su più colonne e più criteriSembra che la logica per la selezione delle righe contrassegnate potrebbe dover essere un po' più specifica?
If( :Person == Lag( :Person, 1 ) & :Compound == Lag( :Compound, 1 ), 0, 1)
Prova a eseguire questo script sulla tabella delle dosi nel post di Jeff, quindi esegui prima lo script sort, seguito dallo script subset.
dt=tabella dati corrente();
dt<
By( :Person, :Compound, :Dose ), Order( Crescente, Crescente, Crescente )););
dt<
dt << Subset( Output Table( "Subset of dose bw" ), Selected Rows( 0 ), Rows( [1, 3, 5, 6] ), Selected columns only( 0 )););
dt<
Numerico, Nominale, Formato( "Migliore", 12 ),
Formula( If( :Person == Lag( :Person, 1 ) & :Compound == Lag( :Compound, 1 ),
0, 1)));
Oggetto: selezione delle righe basata su più colonne e più criteriPMroz ha una buona soluzione.
Eccone un altro.
Ordina la tua tabella per Nome, Composto, Dose (crescente).
Poi crea un Colonna Stato riga ( Cols -> Nuova colonna ).

E aggiungi un Formula .

La formula dovrebbe essere:
Selected State( :Compound != :Compound[Row() + 1] )
Nell'editor di formule ha questo aspetto:

Questo selezionerà qualsiasi riga in cui il nome del composto è diverso dal nome del composto nella riga successiva. Poiché la tabella è ordinata per persona, composto e dose, queste righe rappresenteranno la dose massima per ogni persona.
È quindi possibile copiare queste selezioni nell'area dello stato della riga attiva utilizzando il menu a comparsa accanto al nome della colonna dello stato della riga.

Le righe verranno selezionate e potrai utilizzarle Tabelle->Sottoinsieme per ottenere una nuova tabella di dati con solo le righe selezionate.
Ho allegato una tabella di dati che mostra questo.
- Jeff
Oggetto: selezione delle righe basata su più colonne e più criteriPuoi farlo con una tabulazione:
| Persona | Composto | Massimo |
| Edison | Motrin | 600 |
| Jones | Gabapentin | 30 |
| Ny Quil | 60 |
| fabbro | Aspirina | 200 |
Clicca su Analizza > Tabula (JMP 11) o Tabelle > Tabula (JMP 10, 9, 8)
Lagna Persona alla zona di rilascio per le righe.
Lagna Composto appena a destra di Persona
Lagna Dose sopra di N
Lagna Massimo sopra di Somma
Clic Fatto
Fare clic sul piccolo triangolo rosso e selezionare Trasforma in tabella dati
Potrebbe essere necessario normalizzare le unità se questa è una considerazione.