Finden und identifizieren Sie Duplikate für unsortierte DatenIch bin ziemlich neu bei JMP, daher sind meine Kenntnisse über die Verwendung von Formeln ziemlich begrenzt.
Welche Formel würde ich verwenden, wenn ich eine Spalte mit Werten (Zeichen) habe und diese als Duplikate in einer anderen Spalte identifizieren möchte? (Meine Daten enthalten 10 Spalten, die bereits nach den Werten einer anderen Spalte sortiert sind)
In der Vergangenheit habe ich die folgende Formel verwendet (wenn die Daten, bei denen Duplikate identifiziert werden mussten, alphabetisch sortiert wurden).
If(
Row() == 1, 1,
:Column1 != Lag( :Column1 ), 1,
0
)
Da es mir nicht gestattet ist, Daten anders sortiert darzustellen, als sie eingehen, weiß ich nicht, wie ich Duplikate kennzeichnen soll.
Jede Hilfe ist willkommen.
Qualitäts- und VerfahrenstechnikBetreff: Duplikate für unsortierte Daten finden und identifizierenVielen Dank. Ich konnte markieren, ohne das Skript zu verwenden.
Schätze deine Hilfe!
Betreff: Duplikate für unsortierte Daten finden und identifizierenHier ist ein weiteres Beispiel für die Verwendung einer Spaltenformel.
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 ) ) );
Betreff: Duplikate für unsortierte Daten finden und identifizierenSie können dies auch als Formelspalte tun, indem Sie die folgende Formel verwenden, die die Datentabelle „Big Class“ als Beispiel verwendet
If( Row() == 1,
Current Data Table() << select duplicate rows(
Match( :age, :sex, Empty() )
)
);
If( Selected( Row State( Row() ) ),
"Group 1",
"Group 2"
);
Betreff: Duplikate für unsortierte Daten finden und identifizierenIm Folgenden finden Sie mindestens zwei Möglichkeiten, dies mit Skripten zu tun:
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>Sie können dies auch ohne Skripting tun:
- Wählen Sie die Spalten aus, die Sie interessieren.
- Im Menü „Zeilen“: Zeilenauswahl -> Doppelte Zeilen auswählen
- Menü „Zeilen“: Zeilenauswahl -> Namensauswahl in Spalte
- Wählen Sie „Name“, „Ausgewählt“ als 1 und „Nicht ausgewählt“ als 0
Betreff: Duplikate für unsortierte Daten finden und identifizierenDanke für die Antwort.
Ich glaube nicht, dass ich mich gut erklärt habe. Was ich möchte, ist eine Hilfsspalte, die anzeigt, ob ein bestimmter Wert doppelt vorhanden ist, möglicherweise mit einer „1“, die alle Duplikate angibt, und einer „0“, die keine Duplikate angibt. Ich möchte die Duplikate nicht ausblenden oder löschen.
Betreff: Duplikate für unsortierte Daten finden und identifizieren
Vielleicht hilft diese Zeile
dt = Current Data Table();
dt << Select duplicate rows( Match( :column_1, :column_2, :column_3) );
Dadurch werden Zeilen ausgewählt, die in der oberen Kombination der Spalten 1 bis 3 nicht eindeutig sind.
Mit der Auswahl können Sie nun löschen, ausblenden und ausschließen, eine zusätzliche Spalte füllen oder was Sie damit machen möchten.
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;