¿Cómo eliminar la primera fila duplicada?Estimada comunidad, tengo una pregunta y es cómo eliminar filas con el primer duplicado.
Ejemplo
| Nr | Fecha | Contar |
| 4567 | 2017-01-21 | 1 |
| 5555 | 2017-02-03 | 1 |
| 5555 | 2017-02-10 | 2 |
| 8745 | 2015-03-10 | 1 |
| 8345 | 2016-05-01 | 1 |
| 9563 | 2016-01-02 | 1 |
| 9563 | 2016-01-10 | 2 |
¿Hay una secuencia de comandos sobre cómo, en este ejemplo, encontrar los duplicados que he marcado aquí con texto en negrita y eliminar estas filas directamente o crear una columna adicional donde se pueda indicar, por ejemplo, Mantener y Eliminar?
Estoy usando JMP Pro 14.0.0 (64 bits)
Sinceramente tuyo
Lars Enochsson, MD, Ph.D.
Profesora de cirugia
Departamento de Ciencias Quirúrgicas y Perioperatorias.
Universidad de Umeå
Jefe del Registro Sueco de Cirugía de Cálculos Biliares y CPRE, GallRiks
Secretaria Científica de la Sociedad Quirúrgica Sueca
Email: lars.enochsson@umu.se
Re: ¿Cómo eliminar la primera fila duplicada? @Sra ,
Sus años de experiencia y conocimiento con JMP son evidentes en sus respuestas de Discusión comunitaria. Realmente aprecio su participación en la Comunidad.
Jim
Re: ¿Cómo eliminar la primera fila duplicada?En realidad me encontré por primera vez con JMP en 1994 en la universidad de Uppsala, Suecia, y lo he usado desde entonces. Incluso si JMP todavía no se usa con mucha frecuencia en la academia sueca, he "convertido" a muchos usuarios de SPSS a lo largo del camino.
De acuerdo, esta comunidad es genial.
Re: ¿Cómo eliminar la primera fila duplicada?Bueno, aprecio el "Gracias". Me siento aún mejor de responderte, ahora que sé que eres un compañero escandinavo. Mi bisabuelo, Nels Knutson, emigró a Estados Unidos desde Bergan, Noruega.Re: ¿Cómo eliminar la primera fila duplicada?Gracias por la rápida respuesta. Este guión realmente hizo el truco. No hay muchas personas en Suecia que usen JMP al menos no en el mundo académico. Usualmente utilizan SPSS o Stata. Sin embargo, con esta comunidad activa no hay razón para cambiar. Incluso nuestro estadístico aquí en la Universidad de Umeå está impresionado. /LarsRe: ¿Cómo eliminar la primera fila duplicada?Este script debería funcionar también:
// 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;
Editar: si los duplicados pueden tener la misma fecha, esto funciona mejor, pero se requiere una clasificación por fecha.
dt << Select Where(Col Max(Row(), :Nr) > Row());
dt << Delete Rows;
Re: ¿Cómo eliminar la primera fila duplicada?Aquí hay un script que hará el trabajo:
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 );
Re: ¿Cómo eliminar la primera fila duplicada?Hola Lars,
¿Los duplicados siempre se ordenarán secuencialmente o podría haber registros entre ellos? Si siempre son secuenciales como en tu ejemplo, podrías hacer algo como esto:
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