¿Cómo elimino filas duplicadas?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");Automatización y scriptingRe: ¿Cómo elimino filas duplicadas?Muy interesante lo de las columnas numéricas de fecha y hora de JMP. Tendré que estar atento a eso en el futuro.
Agradezco tu sugerencia.
John
Re: ¿Cómo elimino filas duplicadas?Descubrí mi problema. Estaba relacionado con una unión desde otra tabla que, sin que yo lo supiera, tenía duplicados. Una vez que limpié esa tabla eliminando los duplicados, todo funcionó bien.
Utilicé su código para eliminar los duplicados en la tabla a la que me uní, funcionó perfectamente.
Gracias
Re: ¿Cómo elimino filas duplicadas?¿Las columnas de fecha y hora son columnas numéricas de fecha y hora de JMP? Si es así, los valores mostrados para la columna de fecha pueden ser los mismos, pero los valores numéricos reales (número de segundos desde el 01 de enero de 1904) pueden ser diferentes. Cambie el formato de visualización de la columna de fecha a Fixed Dec, 20, 4 y vea si hay diferencias.
Re: ¿Cómo elimino filas duplicadas?Si entiendo correctamente lo que intentas hacer, la opción Seleccionar filas duplicadas debería funcionar https://www.jmp.com/support/help/en/18.0/#page/jmp/select-rows.shtml# . ¿Puedes proporcionar un conjunto de datos (es muy probable que una maqueta funcione) donde marques las filas que deseas eliminar?
Re: ¿Cómo elimino filas duplicadas?Probé la sugerencia simplista que ofreciste pero tampoco funcionó.
El problema parece surgir cuando las 3 columnas por las que ordeno...
El SN en orden ascendente, la fecha en orden descendente y la hora en orden descendente (esto coloca el registro más reciente por SN en la parte superior o primero en la línea) son todos los mismos valores. En la captura de pantalla adjunta, puede ver que el SN, la fecha y la hora son todos los mismos valores por SN asociado (codifiqué por colores cada conjunto coincidente).
Re: ¿Cómo elimino filas duplicadas?No estoy seguro de estar siguiendo exactamente lo que estás buscando. ¿Funcionaría algo como esto, pero modificado para tu tabla de datos?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Select duplicate rows( Match( :age, :height ) );
dt << Delete rows ();