Wie kann man die Position eines Zeichens in einer Zeichenfolge extrahieren?Ich habe die folgende Spalte, die eine Zeichenfolge enthält, z. B. Punkt oder Zeichen (keine Zahl und kein Sonderzeichen).
Ich möchte eine Spalte generieren, die die Position des Zeichens auflistet, das kein Punkt ist. Siehe ein Beispiel unten.
Gibt es eine Formel oder ein Skript, das ich in JMP verwenden kann?
·cgaagt··a·········· 2,3,4,5,6,7,10
··t·a·············c·· 3,5,19
····················
DatentabelleRe: Wie kann ich die Position eines Zeichens in einer Zeichenfolge extrahieren?Ich denke, Sie müssen es skripten.
- Wandeln Sie den String mit in eine Liste um Wörter(str, "")
- Ersetzen Sie alle Werte, an denen Sie nicht interessiert sind, durch eine leere Zeichenfolge (fehlender Wert), indem Sie Substitute verwenden
- Verwenden Sie Loc NonMissing, um Indizes von nicht fehlenden Werten zu finden
Names Default To Here(1);
a = "·cgaagt··a···········";
b = "··t·a·············c··";
c = "·····················";
list_of_chars = Words(a, "");
Substitute Into(list_of_chars, "·", "");
Show(AsList(Loc Nonmissing(list_of_chars)));
a = "··t·a·············c··";
list_of_chars = Words(a, "");
Substitute Into(list_of_chars, "·", "");
Show(AsList(Loc Nonmissing(list_of_chars)));
a = "·····················";
list_of_chars = Words(a, "");
Substitute Into(list_of_chars, "·", "");
Show(AsList(Loc Nonmissing(list_of_chars)));
//As List(Loc Nonmissing(list_of_chars)) = {2, 3, 4, 5, 6, 7, 10};
//As List(Loc Nonmissing(list_of_chars)) = {3, 5, 19};
//As List(Loc Nonmissing(list_of_chars)) = {};Re: Wie kann ich die Position eines Zeichens in einer Zeichenfolge extrahieren?Weiter ausbauen @jthi großartige Lösung, ich glaube, der beste Weg, Ihr Problem zu lösen, besteht darin, eine neue Spalte zu erstellen, in der Sie die Ergebnisse platzieren können.Außerdem haben Sie angegeben, dass nicht nur ein "." kann als Sonderzeichen verwendet werden.Die folgende JSL ist also eine Formel, die mehrere Sonderzeichen verarbeiten kann und die Ergebnisse auch in einer neuen Spalte zurückgibt.Erstellen Sie einfach eine Zeichenspalte, schneiden Sie die Formel aus und fügen Sie sie ein.

list_of_chars = Words( :strings, "" );
Substitute Into( list_of_chars, ".", "", "+", "", "/", "" );
charList = As List( Loc Nonmissing( list_of_chars ) );
Substr( Char( charList ), 2, Length( Char( charList ) ) - 2 );