Wie entferne ich die erste doppelte Zeile?Liebe Community, ich habe eine Frage dazu, wie man Zeilen mit dem ersten Duplikat eliminiert.
Beispiel
| Nr | Datum | Zählen |
| 4567 | 21.01.2017 | 1 |
| 5555 | 03.02.2017 | 1 |
| 5555 | 10.02.2017 | 2 |
| 8745 | 10.03.2015 | 1 |
| 8345 | 01.05.2016 | 1 |
| 9563 | 02.01.2016 | 1 |
| 9563 | 10.01.2016 | 2 |
Gibt es ein Skript, wie man in diesem Beispiel die Duplikate findet, die ich hier mit fettem Text markiert habe, und diese Zeilen entweder direkt eliminiert oder eine zusätzliche Spalte erstellt, in der es beispielsweise „Behalten und eliminieren“ heißen könnte?
Ich verwende JMP Pro 14.0.0 (64-Bit)
Mit freundlichen Grüßen
Lars Enochsson, MD, Ph.D.
Professor für Chirurgie
Abteilung für chirurgische und perioperative Wissenschaften
Universität Umeå
Leiter des schwedischen Registers für Gallensteinchirurgie und ERCP, GallRiks
Wissenschaftlicher Sekretär der Schwedischen Chirurgischen Gesellschaft
Email: lars.enochsson@umu.se
Betreff: Wie entferne ich die erste doppelte Zeile?@MS ,
Ihre jahrelange Erfahrung und Ihr Wissen mit JMP sind in Ihren Community-Diskussionsantworten offensichtlich.Ich schätze Ihr Engagement in der Community sehr.
Jim
Betreff: Wie entferne ich die erste doppelte Zeile?Tatsächlich bin ich 1994 zum ersten Mal an der Universität Uppsala in Schweden auf JMP gestoßen und verwende es seitdem. Auch wenn JMP in der schwedischen Wissenschaft immer noch nicht sehr verbreitet ist, habe ich im Laufe der Zeit einige SPSS-Benutzer „konvertiert“.
Ich stimme zu, diese Community ist großartig.
Betreff: Wie entferne ich die erste doppelte Zeile?Nun, ich freue mich über das „Danke“. Jetzt, da ich weiß, dass Sie ein skandinavischer Landsmann sind, fällt es mir noch besser, Ihnen zu antworten. Mein Urgroßvater, Nels Knutson, wanderte aus Bergan, Norwegen, nach Amerika aus.Betreff: Wie entferne ich die erste doppelte Zeile?Danke für die schnelle Antwort. Dieses Skript hat es wirklich geschafft. In Schweden nutzen nicht viele Menschen JMP, zumindest nicht in der akademischen Welt. Normalerweise verwenden sie SPSS oder Stata. Bei dieser aktiven Community gibt es jedoch keinen Grund, etwas zu ändern. Sogar unser Statistiker hier oben an der Universität Umeå ist beeindruckt./LarsBetreff: Wie entferne ich die erste doppelte Zeile?Dieses Skript sollte auch funktionieren:
// 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;
Bearbeiten: Wenn Duplikate dasselbe Datum haben können, funktioniert dies besser, aber eine Sortierung nach Datum ist erforderlich.
dt << Select Where(Col Max(Row(), :Nr) > Row());
dt << Delete Rows;
Betreff: Wie entferne ich die erste doppelte Zeile?Hier ist ein Skript, das die Arbeit erledigt:
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 );
Betreff: Wie entferne ich die erste doppelte Zeile?Hallo Lars,
Werden Duplikate immer der Reihe nach angeordnet oder können dazwischen Datensätze liegen?Wenn sie wie in Ihrem Beispiel immer sequentiell sind, könnten Sie so etwas tun:
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