Wie identifiziere ich Wörter (anhand der Formel in der Spalte), die sich um mehr als zwei Zeichen von meinem Referenzwort unterscheiden?Hallo allerseits,
Ich habe eine Spalte, die aus Wörtern besteht, die eine Kombination verschiedener Zeichen enthalten (z. B. AAAAAAAAAA – Wort mit 10 Zeichen). Ich möchte in einer angrenzenden Spalte die Wörter identifizieren, die sich um mehr als zwei Zeichen unterscheiden (z. B. A B AAAA CE AA). Die Position, an der die Buchstaben unterschiedlich sind, spielt keine Rolle und außerdem können einige Wörter auch kürzer oder länger sein als mein Referenzwort.
Daher möchte ich eine Formel erreichen, die es mir ermöglicht, Wörter zu unterscheiden/identifizieren, die weniger/mehr als zwei verschiedene Zeichen von meiner Referenzsequenz unterscheiden und die gleiche Länge haben. Ich bin noch ein Anfänger in JMP und weiß nicht, ob das möglich ist. Lassen Sie mich wissen, wenn Sie Vorschläge haben 
Erweiterte statistische ModellierungVerbraucher- und MarktforschungVersuchsplanungBetreff: Wie identifiziere ich Wörter (anhand der Formel in der Spalte), die sich um mehr als zwei Zeichen von meinem Referenzwort unterscheiden?Danke Jthi! Funktioniert gut 
Betreff: Wie identifiziere ich Wörter (anhand der Formel in der Spalte), die sich um mehr als zwei Zeichen von meinem Referenzwort unterscheiden?Vielen Dank für zusätzliche Informationen! Schauen Sie sich Shortest Edit Script aus dem Scripting-Index an:

Damit können Sie möglicherweise etwas tun, es sei denn, es ist zu langsam. Pat Match könnte das vielleicht auch, aber ich habe mich (noch) nicht damit beschäftigt, wie man es richtig nutzt.
editList = Shortest Edit Script(:List of sequences, "FEBRUARY");
common = "";
For(i = 1, i <= N Items(editList), i++,
If(editList[i][1] == "Common",
common = common || editList[i][2]
)
);
Length(common) < Length(:List of sequences) - 2;

Betreff: Wie identifiziere ich Wörter (anhand der Formel in der Spalte), die sich um mehr als zwei Zeichen von meinem Referenzwort unterscheiden?Hallo Craige,
Vielen Dank für Ihre Hilfe. Ich habe 1 bis 5e6 und nur ein Referenzwort. Grundsätzlich möchte ich Wörter herausfiltern, die sich im Vergleich zu einem Referenzwort um mehr als zwei Buchstaben unterscheiden, und benötige daher nicht mehr als Ja/Nein oder 0/1 als Antwort. Gehen Sie Ihre Fragen durch:
test = "AEIOUA" // nDiff = 0 für identische Zeichenfolge
test = "AAEIOU" // nDiff = 1 – für gleiche Buchstaben, neu angeordnet.
- Das erste A wird nur einmal an der gleichen Position gehalten. (5 verschiedene Buchstaben)
test = "AEIOU" // nDiff = 1 für dieselben Buchstaben, rechts fehlt einer
test = "EIOUA" // nDiff = 1 für dieselben Buchstaben, einer fehlt links
test = "EIOU" // nDiff = 1
test = "AA" // dDiff = 1
test = "AXA" // dDiff = 1
- Länge ist nicht identisch mit AEIOUA. Dazu habe ich eine Funktion Len angewendet, um diese Wörter herauszufiltern.
test = "AXXXXA" // dDiff = 1 für passende Länge
- Das erste und letzte A bleiben an der gleichen Position. (4 verschiedene Buchstaben)
test = "AEI UO A" // dDiff = 0 für interne Buchstaben vertauscht
Nur 2 Buchstaben unterscheiden sich von AEIOUA, daher erfüllt es die Kriterien.
test = "AEIOUEIOU" // nDiff = 1 für wiederholte Buchstaben
Lange Sequenz. Mit Len entfernt.
Entschuldigung, ich habe meine Frage/mein Problem nicht klar dargelegt. Ich habe zusätzlich zu Ihren Fragen ein Beispiel für das nachgebildet, was ich suche.
| Referenzsequenz | FEBRUAR |
| | |
| Liste der Sequenzen | Bezeichnung – mehr als zwei Zeichen abweichend von der Referenz? |
| FEB A UARY | NEIN |
| WAA RUARY | Ja |
| YRAURBEF | Ja |
| FEBRU R R R | NEIN |
| FEBRUAR W | NEIN |
| Y E AURBEF | Ja |
| Y E AUR ARY | Ja |
Betreff: Wie identifiziere ich Wörter (anhand der Formel in der Spalte), die sich um mehr als zwei Zeichen von meinem Referenzwort unterscheiden?Wir brauchen noch ein paar Beispiele. Wie viele Unterschiede gibt es? (Nicht überbewerten, angeben, wo es nicht wichtig ist.)
ref = "AEIOUA" // Ich versuche, die Regel für den wiederholten Buchstaben zu verstehen
test = "AEIOUA" // nDiff = 0 für identische Zeichenfolge
test = "AAEIOU" // nDiff = ? für gleiche Buchstaben, neu geordnet
test = "AEIOU" // nDiff = ? für die gleichen Buchstaben, rechts fehlt einer
test = "EIOUA" // nDiff = ? für die gleichen 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 getauscht
test = "AEIOUEIOU" // nDiff = ? für wiederholte Briefe
Diese Antworten würden bei der Auswahl eines Algorithmus helfen:
Du hast ~1e6 Testwörter gesagt; Wie viele Ref-Wörter sehen Sie?
Benötigen Sie andere Antworten als „Ja/Nein, es gibt mehr als zwei Unterschiede“? Wird eine Anzahl von Unterschieden nützlich sein?
Betreff: Wie identifiziere ich Wörter (anhand der Formel in der Spalte), die sich um mehr als zwei Zeichen von meinem Referenzwort unterscheiden?Anscheinend habe ich falsch verstanden, was Sie mit „ Ich möchte in einer angrenzenden Spalte die Wörter identifizieren, die sich um mehr als zwei Zeichen unterscheiden ". 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 unterschiedlichen Zeichen besteht (es gibt also keine Referenzsequenz oder Referenzzeichenfolge).
Betreff: Wie identifiziere ich Wörter (anhand der Formel in der Spalte), die sich um mehr als zwei Zeichen von meinem Referenzwort unterscheiden?Hallo Jthi, danke für den Vorschlag.
Ehrlich gesagt versuche ich immer noch, die Formel zu verstehen :'). In der Datei, an der ich arbeite, habe ich nur ein Referenzwort und ich 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 angesichts einer großen Datenbank anzupassen?
Betreff: Wie identifiziere ich Wörter (anhand der Formel in der Spalte), die sich um mehr als zwei Zeichen von meinem Referenzwort unterscheiden?Hallo Ian,
Danke für die Rückmeldung. Ich habe versucht, die von Ihnen geschriebene Formel umzusetzen, aber ich verstehe nicht, wo ich definieren kann, dass meine Referenzsequenz AAAAAAA ist und nicht etwas anderes. 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 (anhand der Formel in der Spalte), die sich um mehr als zwei Zeichen von meinem Referenzwort unterscheiden?Es gibt 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 ab der ersten Position zu ersetzen. Wenn noch einige Zeichen übrig sind, wissen wir, dass die Zeichenfolge mehr als ein Zeichen enthielt. Wenn Sie mehr als einen Wert ersetzen müssen, sollten Sie in der Lage sein, dieselbe Idee zu nutzen, indem Sie die Argumente der Substitute-Funktion ändern
Betreff: Wie identifiziere ich Wörter (anhand der Formel in der Spalte), die sich um mehr als zwei Zeichen von meinem Referenzwort unterscheiden?Werfen Sie einen Blick auf die beigefügte Tabelle, die Ihnen einen Anhaltspunkt geben soll. Das Herzstück davon ist eine Formelspalte (genannt „Entscheidung“ und gekennzeichnet durch das „+“-Zeichen im Spaltenbereich der Tabelle). Wenn Sie auf das „+“ klicken, erhalten Sie:

Um dies zu verstehen, benötigen Sie einige JSL-Kenntnisse und können bei Bedarf über „Hilfe > Skriptindex“ genau herausfinden, wie es funktioniert.