Entfernen von Duplikaten aus der Datentabelle in JMP 15Hallo zusammen,
Ich habe ein Skript, in dem ich doppelte Werte aus einer Tabelle basierend auf der angegebenen Spalte entfernen möchte. Der folgende Code wird zum Entfernen von Duplikaten verwendet und funktioniert gut mit JMP 14.
dt << Select duplicate rows( Match( :name ) );
selected = dt << get selected rows;
if (n rows(selected) > 0,
dt << delete rows;
);
In JMP 15 scheint das jedoch nicht zu funktionieren. Die Zeilen werden ausgewählt, aber später nicht entfernt. Ich habe an mehreren Stellen versucht, „aktuelle Datentabelle ()“ zu verwenden, aber es hat nicht geholfen. Ich würde mich über Hinweise freuen, wie ich diesen Teil zum Laufen bringen kann. Vermisse ich etwas? Beste grüße.
Betreff: Duplikate aus der Datentabelle in JMP 15 entfernenHallo Byron_JMP,
Danke für Ihre Antwort. Ich glaube, ich habe die virtuelle Verknüpfung von Tabellen durchgeführt. Ich kann jedoch immer noch keine Daten in einer Tabelle auswählen, wenn Daten aus der Referenzspalte einer anderen Tabelle ausgewählt werden.
//dt_run - table with duplicates
//dt_run_exp - table without duplicates
dt_run_exp << Select duplicate rows( Match( dt_run_exp:DMC ) );
del_sel = dt_run_exp << get selected rows;
if(n rows(del_sel) > 0,
dt_run_exp << delete rows;
);
dt_run_exp:DMC << Set Property( "Link ID", 1 );
dt_run:DMC << Set Property( "Link Reference", Reference Table( dt_run_exp ) );
Ich werde später versuchen, andere Optionen anzuwenden. Weitere Hinweise und Anregungen sind jederzeit willkommen. Wenn Sie eine zusätzliche Erklärung benötigen, fragen Sie einfach nach.
Vielen Dank an alle für die Zeit und beste Grüße.
</CODE></PRE><P> </P><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-270688" slang="en-US" mode="NONE">Betreff: Duplikate aus der Datentabelle in JMP 15 entfernen</LINGO-SUB><LINGO-BODY id="lingo-body-270688" slang="en-US" mode="NONE"><P>Versuchen Sie, Ihre deduplizierte Tabelle zu erstellen, und führen Sie dann, da Sie eindeutige Zeilen in dieser Tabelle haben, einen virtuellen Join zurück zur ersten Tabelle durch. Kein Link. Die Tabellen verhalten sich weiterhin gleich. </P>
<P>Ein weiterer Vorteil besteht darin, dass die deduplizierte Tabelle nur die Spalten enthalten muss, die Sie für das darauf verweisende Diagramm benötigen, nicht die gesamte Tabelle, sodass weniger Speicher benötigt wird.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-270414" slang="en-US" mode="NONE">Betreff: Duplikate aus der Datentabelle in JMP 15 entfernen</LINGO-SUB><LINGO-BODY id="lingo-body-270414" slang="en-US" mode="NONE"><P>Vielen Dank für die Optionen! Ich kann jedoch keine Duplikate aus der Originaltabelle entfernen, da sie zum Erstellen einer Art Diagramm verwendet wird und alle Daten erforderlich sind (auch Duplikate). Zusätzlich muss das zweite Diagramm erstellt werden, und zwar basierend auf der Teilmenge der Originaltabelle, da in diesem Fall keine Duplikate erforderlich sind. Da beide Diagramme im selben Fenster angezeigt werden, ermöglicht die Option „Verknüpft“ beim Erstellen einer Teilmenge die Hervorhebung von Datenpunkten in beiden Diagrammen, wenn der Datensatz aus einem der Diagramme ausgewählt wird. Es wäre also gut, auch eine solche Option zu haben. Warum das Entfernen von Duplikaten nach Verwendung der Option „verknüpft“ durch Erstellen einer Teilmenge in JMP 15 nicht funktioniert, weiß ich nicht. Es kann sein, dass mir noch etwas fehlt. Wie auch immer, ich werde einige andere Optionen ausprobieren und entschuldige mich, wenn meine vorherigen Beschreibungen nicht klar genug waren.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-270243" slang="en-US" mode="NONE">Betreff: Duplikate aus der Datentabelle in JMP 15 entfernen</LINGO-SUB><LINGO-BODY id="lingo-body-270243" slang="en-US" mode="NONE">Ich sehe zwei Möglichkeiten<BR /> 1. Verknüpfung der Datentabelle aufheben => LinkToOriginalDataTable( 0 ).<BR /> 2. Löschen Sie die mehreren Zeilen in der Quelldatentabelle.</LINGO-BODY><LINGO-SUB id="lingo-sub-270187" slang="en-US" mode="NONE">Betreff: Duplikate aus der Datentabelle in JMP 15 entfernen</LINGO-SUB><LINGO-BODY id="lingo-body-270187" slang="en-US" mode="NONE"><P>Vielen Dank für Ihre Vorschläge! Ich habe alle Lösungen ausprobiert, aber in allen Fällen funktioniert das Entfernen von Duplikaten gut, wenn beim Erstellen einer Teilmenge aus der Originaltabelle keine Option „linked“ oder „LinkToOriginalDataTable( 1 )“ vorhanden ist. Das Verknüpfen mit derselben Tabelle und das Entfernen von Duplikaten hat gut funktioniert, aber dann wird keine Verknüpfung mit der Originaltabelle erstellt. Vielleicht hilft der virtuelle Beitritt, ich werde es versuchen. Für weitere Hinweise und Anregungen wäre ich dankbar.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-269205" slang="en-US" mode="NONE">Betreff: Duplikate aus der Datentabelle in JMP 15 entfernen</LINGO-SUB><LINGO-BODY id="lingo-body-269205" slang="en-US" mode="NONE"><P>Dieser JSL-Code funktioniert für mich gut:</P><PRE><CODE class=" language-jsl">Names Default To Here(1);
dt = Current Data Table();
// Clear Data Table
dt << Clear Column Selection();
dt << Clear Select();
//Update Formula Columns
dt << Rerun Formulas;
wait(0);
// Delete multiple rows
dt << Select Duplicate Rows();
dt << Delete Rows();
Betreff: Duplikate aus der Datentabelle in JMP 15 entfernenDas sieht ein wenig klapprig aus, funktioniert aber gut und ist auch ziemlich schnell.
Versuchen Sie, eine Tabelle mit sich selbst zu verbinden, und löschen Sie Vielfache für beide Tabellen.
Ordnen Sie die Spalten in beiden Tabellen zu, die die unvollständige eindeutige Kennung für Duplikate erstellen.
Hier ist ein Beispiel
Data Table( "Big Class.jmp" ) << Join(
With( Data Table( "Big Class.jmp" ) ),
By Matching Columns( :name = :name ),
Drop multiples( 1, 1 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 )
)
Dieser Ansatz ist menügesteuert. Rufen Sie einfach das Quellskript aus der deduplizierten Tabelle ab, nachdem Sie den Join ausgeführt haben.
Betreff: Duplikate aus der Datentabelle in JMP 15 entfernenDanke für deine Antwort!
Ja, das funktioniert gut. Was mir jedoch aufgefallen ist, ist, dass die Datentabelle, in der Duplikate entfernt werden müssen, als Teilmenge einer größeren Tabelle erstellt wird. Beim Erstellen einer Teilmenge wird eine zusätzliche Option „verknüpft“ verwendet, die hilfreich ist, da das Skript mehrere Diagramme erstellt und durch die Auswahl von Daten in einem Diagramm, das mit der größeren Tabelle verknüpft ist, gleichzeitig Daten im Diagramm aus der Teilmengentabelle hervorhebt. Und das funktioniert gut in JMP 14.
Mit dieser „verlinkten“ Option in JMP 15 funktioniert das Entfernen von Duplikaten nicht. Ohne sie funktioniert es wie erwartet, aber in diesem Fall ist die Funktionalität der Anwendung merklich eingeschränkt. Gibt es zusätzliche Optionen oder Befehle, die berücksichtigt werden müssen, damit dies funktioniert?
dt = dt_original << Subset(invisible, linked, Selected Rows( 0 ), selected columns( 1 ), Output Table Name( "Table"));
Betreff: Duplikate aus der Datentabelle in JMP 15 entfernenHier ist ein Beispiel dafür, dass Ihr Code fehlerfrei und wie erwartet funktioniert
names default to here(1);
dt=open("$SAMPLE_DATA/big class.jmp");
dt << Select duplicate rows( Match( :name ) );
selected = dt << get selected rows;
if (n rows(selected) > 0,
dt << delete rows;
);