Trova e identifica i duplicati per i dati non ordinatiAbbastanza nuovo per JMP, quindi la mia conoscenza di come utilizzare le formule è piuttosto limitata.
Se ho una colonna di valori (carattere) e voglio identificarli come duplicati in una colonna diversa, quale formula dovrei usare? (I miei dati hanno già 10 colonne ordinate in base ai valori di una colonna diversa)
In passato, ho utilizzato la formula seguente (quando i dati che richiedono l'identificazione dei duplicati sono stati ordinati alfabeticamente).
If(
Row() == 1, 1,
:Column1 != Lag( :Column1 ), 1,
0
)
Dal momento che non sono autorizzato a presentare i dati ordinati in modo diverso dal modo in cui arrivano, sono un po 'perplesso su come indicare i duplicati.
Qualsiasi aiuto è apprezzato.
Qualità e ingegneria di processoRi: Trova e identifica duplicati per dati non ordinatiGrazie mille. Sono stato in grado di contrassegnare senza utilizzare lo scripting.
Apprezzo il tuo aiuto!
Ri: Trova e identifica duplicati per dati non ordinatiEcco un altro esempio che utilizza una formula di colonna.
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 ) ) );
Ri: Trova e identifica duplicati per dati non ordinatiPuoi anche farlo come una colonna formula usando la formula seguente che utilizza la tabella di dati Big Class come esempio
If( Row() == 1,
Current Data Table() << select duplicate rows(
Match( :age, :sex, Empty() )
)
);
If( Selected( Row State( Row() ) ),
"Group 1",
"Group 2"
);
Ri: Trova e identifica duplicati per dati non ordinatiDi seguito sono riportati almeno due modi per farlo con lo scripting:
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>Puoi anche farlo senza alcuno script:
- Seleziona le colonne che ti interessano.
- Dal menu Righe: Selezione riga -> Seleziona Righe duplicate
- Menu Righe: Selezione riga -> Selezione nome nella colonna
- Scegli nome, Selezionato come 1 e Non selezionato come 0
Ri: Trova e identifica duplicati per dati non ordinatiGrazie per la risposta.
Non credo di essermi spiegato bene. Quello che voglio è una colonna helper per indicare se un determinato valore è duplicato, magari con un "1" che indica tutti i duplicati e uno "0" che indica nessun duplicato. Non voglio nascondere o eliminare i duplicati.
Ri: Trova e identifica duplicati per dati non ordinati
Forse questa linea aiuta
dt = Current Data Table();
dt << Select duplicate rows( Match( :column_1, :column_2, :column_3) );
Questo selezionerà le righe che non sono univoche nella combinazione superiore delle colonne da 1 a 3.
Con la selezione ora puoi eliminare, nascondere ed escludere, riempire una colonna aggiuntiva o cosa vuoi fare con loro.
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;