J'ai un script qui analyse les fichiers CSV avec différents en-têtes de colonnes. Certaines ont des valeurs catégorielles qui doivent rester catégoriques, tandis que d'autres colonnes contiennent des valeurs catégorielles mais doivent être transformées en valeurs numériques continues (par exemple les colonnes A, B, C, D dans l'exemple ci-dessous). Est-il possible d'écrire un script JSL qui exécute le script ci-dessous quel que soit le nom de la colonne ?
Vous ne savez pas dans quelle mesure cela est réalisable ? Peut-être demander à l'utilisateur de sélectionner les colonnes à modifier en valeurs numériques ? Ou importer les noms de colonnes d'une liste écrite dans un autre fichier ?
Local( {old dt = Current Data Table()},
Current Data Table( dt_split);
For Each( {col, index},
<STRONG>{:'A'n, :'B'n, :'C'n, :'D'n,}</STRONG>
col << Data Type( Numeric ) << Set Modeling Type( "Continuous" ) <<
Set Field Width( 12 )
);
Current Data Table( old dt );
);
L'objet d'affichage Col List Box() est probablement le meilleur élément à utiliser pour demander à un utilisateur de saisir les colonnes à traiter.Voici l'entrée de l'index des scripts

L'exemple crée une fenêtre d'affichage qui permet la sélection de colonnes dans la table de données

A partir de là, vous pouvez ajouter des instructions et également collecter les colonnes sélectionnées à traiter
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Select Columns",
text box("Select Columns that need to be converted to numeric/continuous"),
Col List Box( all, width( 250 ), maxSelected( 1 ) ),
lb = Col List Box(),
button box("OK",
selected columns = lb << get items
)
);
Au-dessus, les colonnes sélectionnées sont placées dans une liste JMP appelée « colonnes sélectionnées » lorsque vous appuyez sur le bouton OK.Vous pouvez également ajouter à la boîte de boutons, une simple boucle à travers les valeurs dans la liste des colonnes sélectionnées, ajouter des modifications aux types de données et aux types de modélisation.