Extrahieren Sie Zahlen aus einer ZeichenfolgeHallo,
Ich möchte alle in [] enthaltenen Zahlen extrahieren und in der Liste speichern. Gibt es eine Möglichkeit, dies mit jsl zu erreichen?
Ich möchte Zahlen aus der Spalte extrahieren und in der Liste speichern, die etwa so aussehen sollte:
bins = {"52", "79", "39 41 43", "38 40 42", "1"};
Jeder Rat wäre sehr hilfreich.

Danke
Automatisierung und SkripterstellungVerbraucher- und MarktforschungBetreff: Zahlen aus String extrahierenHier ist ein anderer Ansatz. Es gibt viele Möglichkeiten zur Verarbeitung von Zeichenfolgen, Listen und Datenspalten in JMP!
Names Default to Here( 1 );'
// create sample
dt = New Table( "Sample",
New Column( "Values", "Character", "Nominal",
Values( { "", "", "[52]", "[79]", "[39 41 43]", "[38 40 42]", "", "", "", "[1]" } )
)
);
// use sample
val = :Values << Get Values;
// find
bins = List();
For( i = 1, i <= N Items( val ), i++,
If( val[i] != "",
Insert Into( bins,
Substitute( val[i],
"[", "",
"]", ""
);
);
);
);
Show( bins );Betreff: Zahlen aus String extrahierenDanke Jim 
Betreff: Zahlen aus String extrahierenEs gibt verschiedene Möglichkeiten, dies zu tun.
Sie können die Werte für Ihre Wertespalte mithilfe von in eine Liste einfügen < zur Spalte.
Sie müssen die fehlenden Werte aus dieser Liste entfernen. Dies geht ganz einfach, indem Sie die fehlenden Zeilen in der Datentabelle mit suchen Zeilen abrufen Where() . Dann ist die Entfernen von() Die Funktion entfernt diese Elemente aus der Liste.
Verwenden Sie dann For Each() und die Funktion Word(), um die eckigen Klammern (z. B. „[]“) zu entfernen.
dt = Data Table( "Sample.jmp" );
//locate the missing values
missings = dt << get rows where( Is Missing( :values ) );
//get a list of the Values column
lst = :Values << get values;
//Remove the missings from the list
Remove From( lst, As List( missings ) );
//strip the square brackets
For Each( {item, i}, lst, lst[i] = Word( 1, item, "[]" ) );
Sie können dies alles auch in der Datentabelle tun, indem Sie mit der Funktion Word() eine neue Formelspalte hinzufügen, um die eckigen Klammern zu entfernen, und dann die Werte aus der neuen Spalte abrufen.
dt=Data Table("Sample.jmp");
new_col = dt << New Column( "New Values", Character,
formula( Word( 1, :Values, "[]" ) )
);
lst = (new_col << get values)[dt <<
get rows where( !Is Missing( :New Values ) )];
Die Word()-Funktion ist mein Favorit: Wenn Sie nur eine Funktion des Formeleditors erlernen, ist Word() die richtige
Betreff: Zahlen aus String extrahierenHier ist ein einfaches Beispiel, das Ihre Beispieldatentabelle einliest und eine Liste mit den Werten erstellt
x = {"52", "79", "39", "41", "43", "38", "40", "42", "1"};
Names Default To Here( 1 );
dt = current data table();
x = {};
For Each Row(
If( :values != "",
y = Eval( Parse( :values ) );
For Each( {value}, y, Insert Into( x, Char( value ) ) );
)
);
Show( x );