Je veux appliquer deux choses à une colonne spécifique en utilisant JSL.
1. Mettre en majuscule le premier alphabet basé sur " ".
(examen, ple -> Examen, Ple , TEST JSL -> Test Jsl)
2. En cas d'avoir ","
Dupliquer la ligne pour qu'il y ait une ligne en utilisant le mot avant "," et une ligne en tant que mot après "," basé sur ",".
Par example:
- Colonne1 - "exam, ple" est entré dans la première ligne,
- Remplacez ceci par "Exam, Ple",
- Faites ces deux lignes et copiez les valeurs de Column2 et Column3 telles qu'elles sont.

Ce serait vraiment apprécié si vous pouviez me dire le script pour appliquer les deux règles ci-dessus à la colonne.
Merci d'avance! Merci de faire attention au COVID-19.
Le premier peut être fait avec Titlecase(). La seconde peut être effectuée par exemple en parcourant les lignes avec For Each ou de manière interactive directement à partir de JMP.
Solution interactive :
1. Table de départ

2. Sélectionnez Col_a et allez dans Cols / Utilities / Text to Columns et utilisez , comme délimiteur

3. Ensuite, allez dans Tables / Pile. Commencez avec des paramètres comme celui-ci et essayez-le :

tableau des résultats :

4. Supprimez la colonne Étiquette et sélectionnez l'une des lignes vides dans la colonne Données -> clic droit -> sélectionnez les cellules correspondantes -> supprimez les lignes

Avec le script, vous pouvez faire par exemple quelque chose comme ça (nécessite JMP16 en raison de For Each, mais il peut être changé en For-loop si nécessaire). Cela peut également être rendu plus simple si l'on sait combien de colonnes vous avez et combien de valeurs il peut y avoir dans la chaîne qui est utilisée pour dupliquer les lignes.
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(2),
New Column("Col_a", Character, "Nominal", Set Values({"exam, ple", "JSL TEST"})),
New Column("Col_b", Numeric, "Continuous", Format("Best", 12), Set Values([123, 345])),
New Column("Col_3", Numeric, "Continuous", Format("Best", 12), Set Values([222, 333]))
);
Column(dt, "Col_a") << Set Each Value(Titlecase(:Col_a));
//using collector table:
dt_collector = dt << Subset(
Rows([1]),
Selected columns only(0)
);
dt_collector << Delete Rows([1]);
For Each Row(dt,
row_vals = dt[Row(), 0];
If(Contains(row_vals[1], ","),
new_items = Words(row_vals[1], ",");
For Each({new_item}, new_items,
dt_collector << Add Row(1);
row_to_add = Insert(Eval List({Trim Whitespace(new_item)}), Remove(row_vals, 1));
dt_collector[N Rows(dt_collector), 0] = row_to_add;
);
, //else
dt_collector << Add Row(1);
dt_collector[N Rows(dt_collector), 0] = row_vals;
);
);
//adding to same table
//get rows with ,
rows_to_add = dt << Get Rows Where(Contains(:Col_a, ","));
For Each({new_row}, rows_to_add,
new_items = Words(dt[new_row, "Col_a"], ",");
dt[new_row, "Col_a"] = Trim Whitespace(new_items[1]);
Remove From(new_items, 1);
For Each({new_item}, new_items,
dt << Add Rows(1);
row_to_add = Insert(Eval List({Trim Whitespace(new_item)}), Remove(dt[new_row, 0], 1));
dt[N Rows(dt_collector), 0] = row_to_add;
);
show(new_items);
);
Génial .. jthi !!!!
Le script que vous avez suggéré a complètement résolu les deux problèmes.
Merci beaucoup.
J'espère que vous passez un bon réveillon 
Le script résout les deux problèmes, mais en général, il est judicieux d'essayer de le faire également de manière interactive dans JMP. Vous pouvez même demander à JMP de faire le Titlecase pour vous via la plateforme Recode :

ou créez une nouvelle colonne de formules :

Et avec JMP16 un certain nombre d'opérations que vous effectuez, vous pouvez trouver un journal amélioré pour automatiser facilement le processus.