Comment supprimer les lignes en double ?The deletion of duplicate rows is starting to frustrate me! I'm on version 18.
In the following script I have Sorted the table on SN (asc), Date & Time (desc). I then create a New Column "DuplicateFlag" and then apply the Formula If( Lag(:SN, 1) == :SN, 1, 0 ). This adds 0 for no duplicate and 1 for duplicate. We then Select the rows = to 1 and Delete the Selected Rows.<BR /><BR />This appears to work great when the Date and Time are of different values for the associated SN. However, when the Date & Time are the same for the associated SN it does not delete the duplicate SN.<BR /><BR />What suggestions to ensure that all duplicate SN's are successfully deleted.
// Sort the SIDE_1_PRE_MTG table by SN (ascending), Date (descending), and Time (descending)
dt_sort = dt_erroneousdelete << Sort(
By( :SN, :Date, :Time ),
Order( Ascending, Descending, Descending ),
Replace Table
);
// Add a DuplicateFlag column to mark duplicate SN entries
dt_sort << New Column("DuplicateFlag",
Numeric,
"Continuous",
Formula(
If( Lag(:SN, 1) == :SN, 1, 0 )
)
);
// Select rows where DuplicateFlag is 1 and delete them
dt_sort << Select Where( :DuplicateFlag == 1 );
dt_sort << Delete Rows; // Deletes the selected rows
// Remove the DuplicateFlag column after deleting duplicates
dt_sort << Delete Columns("DuplicateFlag");Automatisation et scriptsRe : Comment supprimer les lignes en double ?Très intéressant sur les colonnes numériques Date/Heure de JMP. Je devrai y prêter attention à l'avenir.
J'apprécie votre suggestion.
John
Re : Comment supprimer les lignes en double ?J'ai compris mon problème, il était lié à une jointure d'une autre table qui, à mon insu, contenait des doublons. Une fois que j'ai nettoyé cette table en supprimant les doublons, tout a bien fonctionné.
J'ai utilisé votre code pour supprimer les doublons dans la table à laquelle j'ai adhéré, cela a parfaitement fonctionné.
Merci
Re : Comment supprimer les lignes en double ?Les colonnes Date et Heure de JMP sont-elles des colonnes Date/Heure numériques ? Si tel est le cas, les valeurs affichées pour la colonne Date peuvent être identiques, mais les valeurs numériques réelles (nombre de secondes depuis le 01JAN1904) peuvent être différentes. Modifiez le format d'affichage de la colonne Date sur Fixed Dec, 20, 4 et voyez s'il y a des différences.
Re : Comment supprimer les lignes en double ?Si je comprends bien ce que vous essayez de faire, la sélection des lignes en double devrait fonctionner https://www.jmp.com/support/help/en/18.0/#page/jmp/select-rows.shtml# . Pouvez-vous fournir un ensemble de données (une maquette est probablement très bien) dans lequel vous marquez les lignes que vous souhaitez supprimer.
Re : Comment supprimer les lignes en double ?J'ai essayé la suggestion simpliste que vous avez proposée, mais cela n'a pas fonctionné non plus.
Le problème semble se produire lorsque les 3 colonnes par lesquelles je trie...
SN dans l'ordre croissant, Date dans l'ordre décroissant et Heure dans l'ordre décroissant (cela place l'enregistrement le plus récent par SN en haut ou en premier dans la ligne), sont toutes les mêmes valeurs. D'après la capture d'écran ci-jointe, vous pouvez voir que le SN, la date et l'heure sont toutes les mêmes valeurs par SN associé (j'ai codé en couleur chaque ensemble correspondant).
Re : Comment supprimer les lignes en double ?Je ne suis pas sûr de suivre exactement ce que vous recherchez. Est-ce que quelque chose comme cela fonctionnerait, mais modifié pour votre tableau de données ?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Select duplicate rows( Match( :age, :height ) );
dt << Delete rows ();