Wie extrahiere ich die Position eines Zeichens in einer Zeichenfolge?Ich habe die folgende Spalte, die eine Zeichenfolge enthält, z. B. einen Punkt oder ein Zeichen (keine Zahl und Sonderzeichen).
Ich möchte eine Spalte erstellen, die die Position des Zeichens auflistet, das kein Punkt ist. Sehen Sie sich unten ein Beispiel an.
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
····················
Erweiterte statistische ModellierungAutomatisierung und SkripterstellungDatenexploration und -visualisierungBetreff: Wie extrahiere ich die Position eines Zeichens in einer Zeichenfolge?Erweitern @jthi Tolle Lösung. Ich glaube, der beste Weg, Ihr Problem zu lösen, besteht darin, eine neue Spalte zu erstellen, in der die Ergebnisse platziert werden.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 außerdem die Ergebnisse 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 );
Betreff: Wie extrahiere ich die Position eines Zeichens in einer Zeichenfolge?Ich denke, Sie müssen es skripten.
- Konvertieren Sie die Zeichenfolge mit in eine Liste Wörter(str, "")
- Ersetzen Sie alle Werte, die Sie nicht interessieren, durch eine leere Zeichenfolge (fehlender Wert), indem Sie Substitute verwenden
- Verwenden Sie Loc NonMissing, um Indizes nicht fehlender Werte 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)) = {};