Encuentre e identifique duplicados para datos no ordenadosBastante nuevo en JMP, por lo que mi conocimiento sobre cómo usar fórmulas es bastante limitado.
Si tengo una columna de valores (carácter) y quiero identificarlos como duplicados en una columna diferente, ¿qué fórmula usaría? (Mis datos tienen 10 columnas ya ordenadas por los valores de una columna diferente)
En el pasado, he usado la fórmula a continuación (cuando los datos que necesitan duplicados identificados se han ordenado alfabéticamente).
If(
Row() == 1, 1,
:Column1 != Lag( :Column1 ), 1,
0
)
Dado que no tengo permitido presentar datos ordenados de otra manera que no sea la forma en que vienen, no sé cómo indicar duplicados.
Cualquier y toda ayuda es apreciada.
Ingeniería de Calidad y ProcesosRe: Buscar e identificar duplicados para datos no ordenadosMuchas gracias. Pude marcar sin usar el scripting.
¡Aprecio tu ayuda!
Re: Buscar e identificar duplicados para datos no ordenadosAquí hay otro ejemplo usando una fórmula de columna.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Create a column that indicates duplicate names (there are two "Robert")
dt << New Column( "Duplicate", Formula( If( Col Number( Row(), :name ) > 1, 1, 0 ) ) );
Re: Buscar e identificar duplicados para datos no ordenadosTambién puede hacer esto como una columna de fórmula usando la siguiente fórmula que usa la tabla de datos de Big Class como ejemplo
If( Row() == 1,
Current Data Table() << select duplicate rows(
Match( :age, :sex, Empty() )
)
);
If( Selected( Row State( Row() ) ),
"Group 1",
"Group 2"
);
Re: Buscar e identificar duplicados para datos no ordenadosA continuación hay al menos dos formas de hacer esto con secuencias de comandos:
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(7),
Compress File When Saved(1),
New Column("Column 1",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 1, 2, 3, 2, 5, 1]),
Set Display Width(60)
)
);
dt << New column("Dublicate_formula", Numeric, <<FORMULA> 1, 1,0))
);
dt << Select duplicate rows(Match(:column 1));
dubRows = dt << Get Selected Rows;
dt << New Column("Dublicates", Numeric, Nominal);
Column(dt, "Dublicates")[dubRows] = 1;
Column(dt, "Dublicates")[dt << Get Rows Where(IsMissing(:Dublicates))] = 0;</FORMULA>También puede hacer esto sin ninguna secuencia de comandos:
- Seleccione las columnas que le interesen.
- Desde el menú Filas: Selección de filas -> Seleccionar filas duplicadas
- Menú Filas: Selección de fila -> Selección de nombre en columna
- Elija el nombre, Seleccionado como 1 y No seleccionado como 0
Re: Buscar e identificar duplicados para datos no ordenadosGracias por la respuesta.
Creo que no me expliqué bien. Lo que quiero es una columna de ayuda para indicar si un cierto valor está duplicado, tal vez con un "1" que indica todos los duplicados y un "0" que indica que no hay duplicados. No quiero ocultar ni borrar los duplicados.
Re: Buscar e identificar duplicados para datos no ordenados
Tal vez esta línea ayude
dt = Current Data Table();
dt << Select duplicate rows( Match( :column_1, :column_2, :column_3) );
Esto seleccionará filas que no son únicas en la combinación superior de las columnas 1 a 3.
Con la selección ahora puede borrar, ocultar y excluir, llenar una columna adicional o lo que quiera hacer con ellos.
r_select = dt << select rows( dt << get selected rows ); // this gets you a vector of row number.
r_select << Delete Rows;
// or
r_select << Hide and Exclude;