Come eliminare la prima riga duplicata?Cara comunità, ho una domanda ed è come eliminare le righe con il primo duplicato.
Esempio
| Nr | Data | Contare |
| 4567 | 21-01-2017 | 1 |
| 5555 | 2017-02-03 | 1 |
| 5555 | 2017-02-10 | 2 |
| 8745 | 2015-03-10 | 1 |
| 8345 | 2016-05-01 | 1 |
| 9563 | 2016-01-02 | 1 |
| 9563 | 2016-01-10 | 2 |
Esiste uno script su come, in questo esempio, trovare i duplicati che ho contrassegnato qui con testo in grassetto ed eliminare direttamente queste righe o creare una colonna aggiuntiva in cui potrebbe essere indicato, ad esempio, Mantieni ed Elimina?
Utilizzo JMP Pro 14.0.0 (64 bit)
Cordiali saluti
Lars Enochsson, MD, dottorato di ricerca
Professore di Chirurgia
Dipartimento di Scienze Chirurgiche e Perioperatorie
Università di Umea
Responsabile del registro svedese di chirurgia dei calcoli biliari e ERCP, GallRiks
Segretario scientifico della Società chirurgica svedese
E-mail: lars.enochsson@umu.se
Re: Come eliminare la prima riga duplicata?@SM ,
I tuoi anni di esperienza e conoscenza con JMP sono evidenti nelle risposte alle discussioni della community.Apprezzo molto il tuo coinvolgimento nella Comunità.
Jim
Re: Come eliminare la prima riga duplicata?In realtà ho incontrato per la prima volta JMP nel 1994 all'università di Uppsala, in Svezia, e da allora l'ho utilizzato. Anche se JMP non è ancora molto utilizzato nel mondo accademico svedese, lungo il percorso ho "convertito" parecchi utenti SPSS.
D'accordo, questa community è fantastica.
Re: Come eliminare la prima riga duplicata?Bene, apprezzo i "Grazie". Mi sento ancora meglio nel risponderti, ora che so che sei un collega scandinavo. Il mio bisnonno, Nels Knutson, emigrò in America da Bergan, in Norvegia.Re: Come eliminare la prima riga duplicata?Grazie per la risposta rapida. Questa sceneggiatura ha davvero funzionato. Non ci sono molte persone in Svezia che usano JMP, almeno non nel mondo accademico. Di solito usano SPSS o Stata. Tuttavia, con questa comunità attiva non c'è motivo di cambiare. Anche il nostro statistico qui all'Università di Umeå è impressionato./LarsRe: Come eliminare la prima riga duplicata?Anche questo script dovrebbe funzionare:
// Delete all multiplicate rows except the one with the latest date (sorting does not matter).
dt = Current Data Table();
dt << Select Where(Col Max(:Date, :Nr) > :Date);
dt << Delete rows;
Modifica: se i duplicati possono avere la stessa data, funziona meglio, ma è richiesto l'ordinamento per data.
dt << Select Where(Col Max(Row(), :Nr) > Row());
dt << Delete Rows;
Re: Come eliminare la prima riga duplicata?Ecco uno script che porterà a termine il lavoro:
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 7 ),
New Script(
"Source",
Data Table( "Transpose of Untitled 17" ) <<
Subset( All rows, Selected columns only( 0 ) )
),
New Column( "Nr",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [4567, 5555, 5555, 8745, 8345, 9563, 9563] )
),
New Column( "Date",
Numeric,
"Continuous",
Format( "yyyy-mm-dd", 12 ),
Input Format( "yyyy-mm-dd" ),
Set Values(
[3567801600, 3568924800, 3569529600, 3508790400, 3544905600, 3534537600,
3535228800]
)
),
New Column( "Count",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 2, 1, 1, 1, 2] )
)
);
dt << select duplicate rows( Match( :Nr ) );
wait(5);
dt2 = dt << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
dt << delete rows;
Wait(5);
dt = dt << Update( With( dt2 ), Match Columns( :Nr = :Nr ) );
Close( dt2, nosave );
Re: Come eliminare la prima riga duplicata?Ciao Lars,
I duplicati saranno sempre ordinati in sequenza o potrebbero esserci dei record in mezzo?Se sono sempre sequenziali come nel tuo esempio, potresti fare qualcosa del genere:
dt = Current Data Table();
del_rows = {}; //initiate list to contain list of rows that are duplicates
for(i = 1, i<=N Row(dt), i++,
if(:Nr[i] == :Nr[i+1], insert into(del_rows,i)) //if Nr for current row is same as next, then put current row in del_rows
);
dt << Delete Rows(del_rows); //delete all rows in del_rows