trova valori e categorizzaCiao,
Ho il problema che ho bisogno di classificare alcuni dati. La selezione dei valori da categorizzare sarebbe molto più semplice se esistesse un processo automatizzato. Il problema è tale: Tabella con 3 colonne (1 categoria, 2 profondità misurazioni, 3 numero di punti dati).
1) Vorrei ottenere quelli che sono sotto 0,5 (vedi esempio file colonna 2) per ogni lago rispettivamente. Ciò significa che 0,5 non devono essere inclusi nella valutazione per la selezione.
2) Inoltre, vorrei ordinare quei valori trovati nella colonna 2 dopo quelli con la maggior parte dei punti dati (N, colonna 3) selezionando i tre valori più profondi trovati che contengono la maggior parte dei dati, rispettivamente per ciascun nome della colonna 1.
3) Per categorizzarli, vorrei creare una nuova colonna e aggiungere un 1/2/3 per quelli con la maggior parte dei dati trovati a quelli con meno dati di questi tre. Se due profondità rilevate sono uguali in numero di punti dati, quella più profonda dovrebbe essere classificata come 1 o 2.
Vedi il file di esempio per una migliore comprensione :-).
Grazie in anticipo per qualsiasi soluzione, se possibile con jsl.
Ri: trovare valori e categorizzareCiao @Pacco ,
Stai usando JMP 12 (o prima) per caso? Col Rank () modificato in JMP 13 per consentire gli ulteriori argomenti utilizzati da Xan.
Dai documenti:
JMP 12:
Col Rank(column)
JMP 13:
Col Rank(column, <BYVAR>, <<TIE></TIE></BYVAR>
Ri: trovare valori e categorizzareQuando eseguo lo script e poi faccio un sottoinsieme delle righe selezionate con
dt << Subset( Copy formula( 0 ), Selected Rows( 1 ), Selected columns only( 0 ) )
ottengo
Tutte le colonne sono effettivamente classificate, ma all'interno di valori univoci di Stationsnamn e isBelow05. Questo è controllato dal secondo e dal terzo argumenrs a Col Rank (). Se vuoi che le stazioni siano classificate insieme, rimuovili per variabile dagli argomenti Col Rank ().
Ri: trovare valori e categorizzarePosso chiederti come appare il risultato? Il mio classifica l'intera colonna. Tuttavia, sto cercando di classificare ciascuna sezione (ogni lotto con lo stesso nome, vedere la colonna Stationsnamn).
Ri: trovare valori e categorizzareGrazie per le idee, il "sopprimere valutazione" selezione e deselcting ha aiutato. Tuttavia, l'attesa 5 non ha cambiato nulla!

Ri: trovare valori e categorizzareNon sono sicuro di cosa stia causando il tuo problema. Quando apro la tabella dati che hai fornito nell'ultima risposta, vedo il tuo problema. Sono stato in grado di correggere il problema facendo clic con il pulsante destro del mouse sull'intestazione della colonna per Rango e selezionando Informazioni colonna. Apre la finestra Informazioni colonna. Seleziona "Sopprimi Eval" come mostrato di seguito, quindi fai clic sul pulsante "Applica". Deseleziona "Supperma Eval", quindi fai di nuovo clic sul pulsante "Applica" e verifica se ha corretto i valori nella colonna

L'altra cosa che vorrei provare è eliminare le colonne "isbelow05" e "rank" ed eseguire il seguente script.
dt = Current Data Table();
dt << New Column( "isbelow05", formula( :Profildjup <= 0.5 ) );
wait(.5);
dt << New Column( "rank", formula( Col Rank( -(:n rows + :Profildjup), :isbelow05, :Stationsnamn ) ) );
dt << select where( :isbelow05 & :rank <= 3 );
Se funziona, quale potrebbe essere il problema è che la formula "isbelow05" non viene completata prima che venga generata la colonna "rank" e ciò sta causando problemi. Il
wait(.5);
sta dando tempo per completare la creazione della colonna "isbelow05"
Ri: trovare valori e categorizzaremhh, è strano Ho appena scaricato di nuovo il file di esempio da qui (la differenza era che avevo fatto una selezione con una colonna aggiuntiva), tuttavia, anche il file di esempio che ho caricato mi mostra lo stesso errore che ho postato in precedenza. Tuttavia, ora ha contrassegnato i valori di superficie con uno nella colonna inferiore a 0,5. (vedi file allegato)
Potrei semplificare anche la domanda. Quindi i valori devono essere selezionati e classificati in base al loro rango nei numeri più alti per ogni sezione del nome del lago.
Ri: trovare valori e categorizzareLo script che Xan ha incluso funziona alla grande con i dati di esempio che hai allegato. Qual è la differenza tra i tuoi dati reali e la tabella di dati di esempio che hai allegato?
Ri: trovare valori e categorizzareCiao Greg,
grazie per la risposta e la sceneggiatura. Sfortunatamente, non funziona con i miei dati. I risultati sono due nuove colonne senza dati nella colonna pugno e una sola voce nella prima cella della colonna 2 ("4,20533670002011e-315").
Qualche idea di cosa potrebbe essere andato storto?
Ri: trovare valori e categorizzareQualcosa del genere dovrebbe aiutare se capisco correttamente.
dt = Current Data Table();
dt << New Column( "isbelow05", formula( :Profildjup <= 0.5 ) );
dt << New Column( "rank", formula( Col Rank( -(:n rows + :Profildjup), :isbelow05, :Stationsnamn ) ) );
dt << select where( :isbelow05 & :rank <= 3 );
Se per profondità "sotto" si intende numericamente maggiore, quindi modificare "<= 0.5" in "> = 0.5". Grazie per aver incluso il file di esempio.