Extraire les nombres de la chaîneSalut,
Je veux extraire tous les nombres contenus dans [] et les stocker dans la liste. Existe-t-il un moyen d'y parvenir avec jsl?
Je voudrais extraire des nombres de la colonne et les stocker dans la liste qui devrait ressembler à ceci :
bacs = {"52","79","39 41 43", "38 40 42", "1"} ;
Tout conseil serait très utile.

Merci
Automatisation et scriptÉtudes de consommation et de marchéRe : Extraire des nombres d'une chaîneVoici une autre approche. Il existe de nombreuses possibilités de traitement des chaînes, des listes et des colonnes de données dans 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 );Re : Extraire des nombres d'une chaîneMerci Jim 
Re : Extraire des nombres d'une chaîneIl existe plusieurs façons de procéder.
Vous pouvez obtenir les valeurs de votre colonne Valeurs dans une liste à l'aide de la Message < à la colonne.
Vous devrez vous débarrasser des valeurs manquantes de cette liste. Il est facile de le faire en localisant les lignes manquantes dans la table de données avec Obtenir des lignes où() . Puis le Retirer() La fonction supprimera ces éléments de la liste.
Utilisez ensuite For Each() et la fonction Word() pour vous débarrasser des crochets (c'est-à-dire "[]").
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, "[]" ) );
Vous pouvez également faire tout cela dans la table de données en ajoutant une nouvelle colonne de formule avec la fonction Word() pour supprimer les crochets, puis en obtenant les valeurs de la nouvelle colonne.
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 ) )];
La fonction Word() est ma préférée : Si vous n'apprenez qu'une seule fonction de l'éditeur de formules, Word() est celle
Re : Extraire des nombres d'une chaîneVoici un exemple simple qui lit dans votre exemple de table de données et produit une liste avec les valeurs
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 );