Come analizzare l'ordine numerico dei valori ripetitivi nelle righe?Ciao,
Sono una delle poche persone in Svezia che usa JMP mentre la maggior parte dei miei colleghi accademici usa SPSS. Tuttavia, adoro JMP e ho pubblicato 70 articoli in chirurgia con esso, quindi funziona perfettamente con me. Sono professore associato e mi descriverò come un amatore di JMP avanzato che può programmare un po ', ma c'è un problema con cui sto avendo problemi. Ho già postato questa domanda in precedenza, ma non ho capito esattamente le risposte sul forum. Il problema è il seguente:
Ho un file chiamato risultati .
In questo file ho una colonna di 5700 numeri che sono ordinati in ordine come:
Nr
3456
3666
3687
3687
3687
5444
5444
5445
Gradirei informazioni su come dovrei scrivere uno script o se dovrei scrivere qualcosa in una colonna in più per ottenere l'ordine delle apparizioni ripetitive dei numeri. Il motivo è che sono interessato solo al primo nr. e se riesco a ottenere l'ordine, potrei creare un file separato composto solo dall'ordine 1.
piace
Nr ordine
3456 1
3666 1
3687 1
3687 2
3687 3
5444 1
5444 2
5445 1
Dato che sono un dilettante, sarei grato se tu potessi scrivere la risposta in un modo semplice.
Sinceramente tuo
Lars Enochsson
professore associato
Università Umeå
Svezia
Ri: Come analizzare l'ordine numerico dei valori ripetitivi nelle righe?Grazie. Eccellente aiuto Questo ha risolto il problema./LarsRi: Come analizzare l'ordine numerico dei valori ripetitivi nelle righe?Dolce! ColRank () con una variabile by non era disponibile fino a JMP 13.
Come una FYI, ecco uno script per verificare le prestazioni. Se ci fossero 1.000.000 o più file, probabilmente io ordinerò e userei ritardi.
Names Default to Here(1);
dt = New Table("Test It", add rows(6000),
New Column("Nr", numeric, continuous,<<SET each="" value=""></SET><BR /> Per 6000 righe, usando Col Rank () = 3,13 * usando ritardi
t1 - t0 = 18836;
t3 - t2 = 1863;
t5 - t4 = 4161;
Per 1.000.000 di righe, utilizzando Col Rank () = 2.45 * utilizzando ritardi
t1 - t0 = 1521679;
t3 - t2 = 694813;
t5 - t4 = 621142;
* /
Ri: Come analizzare l'ordine numerico dei valori ripetitivi nelle righe?Prova una formula di colonna con il Col Rank () funzione con una variabile variabile Potrebbe richiedere JMP 13 o successivo, non è sicuro che sia stato introdotto il supporto per variabili secondarie in ColRank.
Prova lo script qui sotto. Dovrebbe dare lo stesso risultato della soluzione precedente. Tuttavia, non dipende dall'ordinamento.
Current Data Table() << New Column("Order", Formula(Col Rank(:Nr, :Nr)));
(Ancora un altro utente JMP in Svezia)
Ri: Come analizzare l'ordine numerico dei valori ripetitivi nelle righe?Dato che la colonna Nr è in ordine, questa può essere fatta con una formula di colonna. Prima di presentare la formula, dovresti cercare nel menu principale> Aiuto> Indice di scripting> Funzioni> Riga o cercare Lag. Ho creato una colonna denominata Count e ho aggiunto questa formula. Di default la prima riga ha un conteggio di 1. La seconda condizione: Nr == Lag (: Nr, 1) è la condizione, se la riga corrente è uguale alla riga precedente, quindi prendere il conteggio precedente, Lag (: Count, 1) e incrementarlo. Altrimenti, il conteggio è 1.
If(
Row() == 1, 1,
:Nr == Lag( :Nr, 1 ), Lag( :Count, 1 ) + 1,
1
)
Nota JMP Lag funziona su testo e numeri. Tuttavia, se avessi una colonna di testo, ti consiglio di modificare la funzione in modo che sia
If(
Row() == 1, 1,
Trim( Lowercase( :txtCol ) ) == Trim( Lowercase (Lag( :txtCol, 1 ) ) ) , Lag( :Count, 1 ) + 1,
1
)
Spero che sia d'aiuto.