Seleziona le righe con i valori massimi in una colonnaPosso usare il riepilogo per trovare i massimi (multipli a causa dei gruppi) in una colonna. Tuttavia, voglio anche cercare in quali righe della tabella originale si verificano i massimi.
C'è una soluzione facile? Grazie per l'aiuto!Oggetto: Seleziona le righe con i valori massimi in una colonnaCiao, scusa se rispondo a una vecchia discussione, ma non riesco a trovare esempi pertinenti altrove.
Vorrei riassumere per gruppo, quindi selezionare quelle righe che hanno il peso massimo per gruppo.
Sono stato in grado di riepilogare, ma non so come selezionare quelle righe.
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?
Grazie
Oggetto: Seleziona le righe con i valori massimi in una colonna<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Soluzione fantastica. Questo e 'esattamente quello che stavo cercando!
Oggetto: Seleziona le righe con i valori massimi in una colonnaPuoi anche usare OTTIENI RIGHE DOVE :
yourarray = dt << ottenere righe dove ( : nomecolonna == valore di picco ) ;
Il vantaggio di ottenere righe dove è che a) è un passaggio e non due, eb) nessuna riga è selezionata nella tabella.Se hai bisogno delle righe selezionate, l'approccio mostrato da MOSFETtestEng farà il trucco.
Oggetto: Seleziona le righe con i valori massimi in una colonnaSo che sono passati due anni, ma questo è per tutti coloro che hanno trovato questo post con la stessa domanda.
Prova la funzione "Ottieni righe selezionate" nel tuo script.
yourarray = dt << Get Selected Rows;
Ora l'array "yourarray" conterrà un elenco dei numeri di riga selezionati.
Per trovare le righe con il valore massimo, prova
// 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;
Oggetto: Seleziona le righe con i valori massimi in una colonnaHo ottenuto JMP10 e ho rivisitato questo problema."Unisciti" utilizzando la corrispondenza delle colonne funziona bene.Immagino che l'"aggiornamento" della tabella sembri essere ancora più semplice.
Oggetto: Seleziona le righe con i valori massimi in una colonnaFor Each Row() può essere inefficiente per tabelle di grandi dimensioni.
Select Where() sarà probabilmente più veloce:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << clear select;
Summarize( g = by( :age ), m = Max( :height ) );
dt<<SELECT where=""></SELECT>
Oggetto: Seleziona le righe con i valori massimi in una colonnaLa sceneggiatura sembra buona. Proverò e riferirò.
Ciò che mi ha sorpreso è che JMP stesso non mantiene l'indice (numero di riga) del massimo dei dati da qualche parte.
DongOggetto: Seleziona le righe con i valori massimi in una colonnaScusa, hai ragione. Sono stato troppo veloce per rispondere. Modificherò il mio post errato sopra
Quello che volevo suggerire è che puoi provare a combinare Summary con Update (o Join, non sono sicuro che Update si trovi nel menu Tables di JMP7).
Ecco un esempio di script che dovrebbe funzionare ma potrebbe non essere efficace per tabelle di dati molto grandi.
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 ) ) )
);
Oggetto: Seleziona le righe con i valori massimi in una colonnaSM,
Grazie. Ho fatto un tentativo e sto ancora selezionando tutte le righe nella tabella originale quando seleziono la seconda tabella di riepilogo. Ogni volta che seleziono una riga (Max per il gruppo) nella tabella di riepilogo, viene selezionata anche ogni riga nella prima tabella di riepilogo del gruppo.
Spero di seguire correttamente le tue istruzioni. La seconda tabella di riepilogo è denominata "DataTable By (group, data) By (group)"?
Cordiali saluti, sto usando JMP7.
DongOggetto: Seleziona le righe con i valori massimi in una colonnaJeff,
Grazie. Questa sembra essere una nuova funzionalità di JMP 9. Sto usando JMP 7. Immagino che potrei richiedere un aggiornamento.
Inoltre, sto cercando di selezionare più massimi in una colonna. I massimi appartengono a diversi gruppi specificati in altre colonne.
DongOggetto: Seleziona le righe con i valori massimi in una colonnaRighe->Selezione riga->Seleziona dominante selezionerà le righe con i valori massimi (o minimi) in una colonna o in un gruppo di colonne.
Credo che ti darà quello che stai cercando.
JeffOggetto: Seleziona le righe con i valori massimi in una colonnaÈ possibile abbinare la tabella originale alla tabella di riepilogo utilizzando Aggiorna (menu Tabelle) con colonna/e di gruppo = colonna/e di gruppo e data = max(dati) come colonne corrispondenti. Le righe massime saranno indicate da celle non mancanti nella colonna NRows aggiunta.
La mia prima risposta era basata su un pensiero approssimativo...
Il messaggio è stato modificato da: MS