Suppression des doublons de la table de données dans JMP 15Bonjour tout le monde,
J'ai un script dans lequel je souhaite supprimer les valeurs en double d'une table basée sur la colonne spécifiée. Le morceau de code suivant est utilisé pour supprimer les doublons et fonctionne bien avec JMP 14.
dt << Select duplicate rows( Match( :name ) );
selected = dt << get selected rows;
if (n rows(selected) > 0,
dt << delete rows;
);
Dans JMP 15, cependant, cela ne semble pas fonctionner. Les lignes sont sélectionnées mais ne sont pas supprimées ultérieurement. J'ai essayé d'utiliser "la table de données actuelle ()" à plusieurs endroits mais cela n'a pas aidé. J'apprécierais des conseils sur la façon de faire fonctionner cette partie. Est-ce que j'ai raté quelque chose ? Cordialement.
Re : Suppression des doublons de la table de données dans JMP 15Bonjour Byron_JMP,
merci pour votre réponse. Je pense avoir fait la jointure virtuelle des tables. Mais je ne parviens toujours pas à obtenir la sélection de données dans une table si les données de la colonne de référence d'une autre table sont sélectionnées.
//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 ) );
J'essaierai d'appliquer d'autres options plus tard. Toute autre suggestion est la bienvenue. Si une explication supplémentaire est nécessaire, n'hésitez pas à demander.
Merci à tous pour votre temps et meilleures salutations.
</CODE></PRE><P> </P><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-270688" slang="en-US" mode="NONE">Re : Suppression des doublons de la table de données dans JMP 15</LINGO-SUB><LINGO-BODY id="lingo-body-270688" slang="en-US" mode="NONE"><P>Essayez de créer votre table dédoublonnée, puis, puisque vous avez des lignes uniques dans cette table, effectuez une jointure virtuelle à la première table. Pas un lien. Les tables auront toujours le même comportement. </P>
<P>Autre avantage, la table dédoublonnée ne doit contenir que les colonnes dont vous avez besoin pour le graphique qui pointe vers elle, pas la table entière, elle prendra donc moins de mémoire.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-270414" slang="en-US" mode="NONE">Re : Suppression des doublons de la table de données dans JMP 15</LINGO-SUB><LINGO-BODY id="lingo-body-270414" slang="en-US" mode="NONE"><P>Merci pour les options ! Cependant, je ne peux pas supprimer les doublons de la table d'origine car elle est utilisée pour créer un type de graphique et toutes les données sont requises (même les doublons). De plus, le deuxième graphique doit être créé et basé sur le sous-ensemble du tableau d'origine, car les doublons ne sont pas nécessaires dans ce cas. Étant donné que les deux graphiques sont affichés sur la même fenêtre, l'option « lié » lors de la création d'un sous-ensemble permet de mettre en évidence les points de données dans les deux graphiques si l'ensemble de données de l'un des graphiques est sélectionné. Ce serait donc bien d’avoir une telle option également. Pourquoi supprimer les doublons après avoir utilisé l'option "lié" en créant un sous-ensemble dans JMP 15 ne fonctionne pas, je ne sais pas. Il se peut qu'il me manque encore quelque chose. Quoi qu'il en soit, je vais essayer d'autres options et je m'excuse si mes descriptions précédentes n'étaient pas assez claires.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-270243" slang="en-US" mode="NONE">Re : Suppression des doublons de la table de données dans JMP 15</LINGO-SUB><LINGO-BODY id="lingo-body-270243" slang="en-US" mode="NONE">Je vois deux options<BR /> 1. Dissocier la table de données => LinkToOriginalDataTable( 0 ).<BR /> 2. Supprimez les plusieurs lignes de la table de données source.</LINGO-BODY><LINGO-SUB id="lingo-sub-270187" slang="en-US" mode="NONE">Re : Suppression des doublons de la table de données dans JMP 15</LINGO-SUB><LINGO-BODY id="lingo-body-270187" slang="en-US" mode="NONE"><P>Merci pour vos suggestions! J'ai essayé toutes les solutions mais dans tous les cas, la suppression des doublons fonctionne bien s'il n'y a pas d'option "linked" ou "LinkToOriginalDataTable( 1 )" lors de la création d'un sous-ensemble à partir de la table d'origine. La jointure avec la même table et la suppression des doublons ont bien fonctionné, mais aucun lien avec la table d'origine n'est créé. Peut-être que la participation virtuelle aidera, je vais essayer. J'apprécierais d'autres conseils et suggestions.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-269205" slang="en-US" mode="NONE">Re : Suppression des doublons de la table de données dans JMP 15</LINGO-SUB><LINGO-BODY id="lingo-body-269205" slang="en-US" mode="NONE"><P>Ce code JSL fonctionne bien pour moi :</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();
Re : Suppression des doublons de la table de données dans JMP 15Cela semble un peu difficile, mais cela fonctionne bien et c'est assez rapide aussi.
Essayez de joindre une table à elle-même et supprimez des multiples pour les deux tables.
Faites correspondre les colonnes des deux tableaux qui créent l'identifiant unique imparfait pour les doublons.
voici un exemple
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 )
)
Cette approche est pilotée par menu. Récupérez simplement le script source de la table dédupliquée après avoir exécuté la jointure.
Re : Suppression des doublons de la table de données dans JMP 15Merci de votre réponse!
Oui, cela fonctionne bien, cependant, ce que j'ai remarqué, c'est que la table de données dans laquelle les doublons doivent être supprimés est créée comme un sous-ensemble d'une table plus grande. Lors de la création d'un sous-ensemble, une option supplémentaire "liée" est utilisée, ce qui est utile, car le script crée plusieurs diagrammes et en sélectionnant les données sur un graphique associé au plus grand tableau, il met en évidence en même temps les données sur le graphique du tableau du sous-ensemble. Et cela fonctionne bien dans JMP 14.
Avec cette option « liée » dans JMP 15, la suppression des doublons ne fonctionne pas. Sans cela, cela fonctionne comme prévu mais dans ce cas, la fonctionnalité de l'application est sensiblement limitée. Y a-t-il des options ou des commandes supplémentaires à prendre en compte pour que cela fonctionne ?
dt = dt_original << Subset(invisible, linked, Selected Rows( 0 ), selected columns( 1 ), Output Table Name( "Table"));
Re : Suppression des doublons de la table de données dans JMP 15Voici un exemple de votre code fonctionnant sans erreur et comme prévu
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;
);