Trova e identifica i duplicati per i dati non ordinatiAbbastanza nuovo per JMP, quindi la mia conoscenza su come usare 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 10 colonne già ordinate in base ai valori di una colonna diversa)
In passato, ho utilizzato la formula seguente (quando i dati che necessitano di duplicati identificati sono stati ordinati alfabeticamente).
Se(
Riga () == 1, 1,
: Column1! = Lag (: Column1), 1,
0
)
Dal momento che non sono autorizzato a presentare i dati ordinati in un modo diverso dal modo in cui arrivano, sono un po 'perplesso su come indicare i duplicati.
Qualsiasi aiuto è apprezzato.
Tabella datiRi: trova e identifica i duplicati per i dati non ordinati
Forse questa linea aiuta
dt = Tabella dati correnti ();
dt << Seleziona righe duplicate (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 << seleziona righe (dt << ottieni righe selezionate); // questo ti dà un vettore del numero di riga.
r_select << Elimina righe;
o
r_select << Nascondi ed escludi;
Ri: trova e identifica i duplicati per i 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 l'assenza di duplicati. Non voglio nascondere o eliminare i duplicati.
Ri: trova e identifica i duplicati per i 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 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 Deselezionato come 0
Ri: trova e identifica i duplicati per i dati non ordinatiPuoi anche farlo come colonna formula utilizzando 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 i duplicati per i dati non ordinatiGrazie mille. Sono stato in grado di contrassegnare senza utilizzare lo script.
Apprezzo il tuo aiuto!
Re: Trova e identifica i duplicati per i 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 ) ) );