Wie identifiziere ich Wörter (mithilfe der Formel in der Spalte), die sich in mehr als 2 Zeichen von meinem Referenzwort unterscheiden?Hallo allerseits,
Ich habe eine Spalte, die aus Wörtern besteht, die eine Kombination verschiedener Zeichen enthalten (dh AAAAAAAAAA - Wort mit 10 Zeichen). Ich möchte in einer angrenzenden Spalte die Wörter identifizieren, die mehr als 2 Zeichen unterschiedlich sind (z. B. A B AAAA CE AA). Dabei spielt es keine Rolle, an welcher Stelle sich die Buchstaben unterscheiden und außerdem können einige Wörter auch kürzer oder länger als mein Bezugswort sein.
Daher möchte ich eine Formel erreichen, die es mir ermöglicht, Wörter zu unterscheiden / zu identifizieren, die weniger / mehr als 2 verschiedene Zeichen von meiner Referenzsequenz unterscheiden und die gleiche Länge haben. Ich bin noch ein Anfänger in JMP und weiß nicht, ob dies möglich ist. Lasst mich wissen, wenn ihr Vorschläge habt 
DatentabelleBetreff: Wie identifiziere ich Wörter (mithilfe der Formel in der Spalte), die sich in mehr als 2 Zeichen von meinem Referenzwort unterscheiden?Werfen Sie einen Blick auf die beigefügte Tabelle, die Ihnen einen Anhaltspunkt geben sollte. Das Herzstück davon ist eine Formelspalte (mit dem Namen „Entscheidung“ und gekennzeichnet durch das „+“-Zeichen im Spaltenbereich der Tabelle. Ein Klick auf das '+' ergibt:

Sie benötigen einige JSL-Kenntnisse, um dies zu verstehen, und können bei Bedarf „Hilfe > Scripting-Index“ verwenden, um genau herauszufinden, wie es funktioniert.
Betreff: Wie identifiziere ich Wörter (mithilfe der Formel in der Spalte), die sich in mehr als 2 Zeichen von meinem Referenzwort unterscheiden?Viele Möglichkeiten, dies zu tun. Hier ist eine zusätzliche Option:
Names Default To Here(1);
/*
a = "ABAAAACEAA";
b = "AAAAAAAAAA";
Show(!IsMissing(Substitute(a, Left(a,1), "")));
Show(!IsMissing(Substitute(b, Left(b,1), "")));
*/
New Table("Untitled 2",
Add Rows(3),
New Column("Column 1", Character, "Nominal", Set Values({"ABAAAACEAA", "AAAAAAAAAA", "BBBBAAA"})),
New Column("Column 2",
Numeric,
"Continuous",
Format("Best", 12),
Formula(!Is Missing(Substitute(:Column 1, Left(:Column 1, 1), "")))
)
);
Spalte1 ist die Spalte mit Zeichen
Formula(!Is Missing(Substitute(:Column 1, Left(:Column 1, 1), "")))
In diesem einfachen Beispiel besteht die Idee darin, alle Werte in der Zeichenfolge zu ersetzen, die von der ersten Position an gefunden wurden, und wenn noch einige Zeichen übrig sind, wissen wir, dass mehr als 1 Zeichen in der Zeichenfolge vorhanden war. Wenn Sie mehr als einen Wert ersetzen müssen, sollten Sie in der Lage sein, dieselbe Idee zu verwenden, indem Sie die Argumente der Substitute-Funktion ändern
Betreff: Wie identifiziere ich Wörter (mithilfe der Formel in der Spalte), die sich in mehr als 2 Zeichen von meinem Referenzwort unterscheiden?Hallo Jan,
Danke für die Rückmeldung. Ich habe versucht, die von Ihnen geschriebene Formel zu implementieren, aber ich verstehe nicht, wo ich definieren kann, dass meine Referenzsequenz AAAAAAA und nichts anderes ist. Ich habe das "" in der Artikelauswahl durch "AAAAAAAA" ersetzt, aber das Ergebnis war nicht korrekt. Irgendwelche Vorschläge, wie ich die von Ihnen geschriebene Formel aktualisieren kann?
Betreff: Wie identifiziere ich Wörter (mithilfe der Formel in der Spalte), die sich in mehr als 2 Zeichen von meinem Referenzwort unterscheiden?Hallo Jthi, danke für den Vorschlag.
Um ehrlich zu sein, versuche ich immer noch, die Formel zu verstehen :'). In der Datei, an der ich arbeite, habe ich nur ein Referenzwort und muss mehr als eine Million Zeileneinträge mit jeder möglichen Positions-/Buchstabenkombination durchsuchen. Ich gehe davon aus, dass diese Formel nicht funktionieren würde, da ich diese Werte in der Formel nicht definieren kann. Wäre es möglich, es unter Berücksichtigung einer großen Datenbank Ive anzupassen?
Betreff: Wie identifiziere ich Wörter (mithilfe der Formel in der Spalte), die sich in mehr als 2 Zeichen von meinem Referenzwort unterscheiden?Sieht so aus, als hätte ich falsch verstanden, was du mit " Ich möchte in einer benachbarten Spalte die Wörter identifizieren, die mehr als 2 Zeichen unterschiedlich sind ". Was ich vorgeschlagen habe, würde Zeilen kennzeichnen, in denen jede Zelle in der Quellspalte eine Zeichenfolge enthält, die selbst aus mehr als zwei verschiedenen Zeichen besteht (es gibt also keine Referenzsequenz oder -zeichenfolge).
Betreff: Wie identifiziere ich Wörter (mithilfe der Formel in der Spalte), die sich in mehr als 2 Zeichen von meinem Referenzwort unterscheiden?Wir brauchen noch ein paar Beispiele. Wie hoch ist die Anzahl der Unterschiede (nicht überbestimmen, angeben, wo es nicht wichtig ist.)
ref = "AEIOUA" // versucht, die Regel für den wiederholten Buchstaben zu verstehen
test = "AEIOUA" // nDiff = 0 für identischen String
test = "AAEIOU" // nDiff = ? für gleiche Buchstaben, neu geordnet
test = "AEIOU" // nDiff = ? für gleiche Buchstaben, rechts fehlt einer
test = "EIOUA" // nDiff = ? für gleiche Buchstaben, links fehlt einer
test = "EIOU" // nDiff = ?
test = "AA" // dDiff = ?
test = "AXA" // dDiff = ?
test = "AXXXXA" // dDiff = ? für passende Länge
test = "AEIUOA" // dDiff = ? für interne Briefe vertauscht
test = "AEIOUEIOU" // nDiff = ? für wiederholte Buchstaben
Diese Antworten würden bei der Auswahl eines Algorithmus helfen:
Sie haben ~1e6 Testwörter gesagt; Wie viele Ref-Wörter sehen Sie sich an?
Benötigen Sie andere Antworten als "ja/nein, es gibt mehr als 2 Unterschiede"? Wird eine Anzahl von Diffs nützlich sein?