Quiero aplicar dos cosas a una columna específica usando JSL.
1. Escriba en mayúscula el primer alfabeto basado en "".
(examen, ple -> Examen, Ple, PRUEBA JSL -> Prueba Jsl)
2. En caso de tener ","
Duplica la fila para que haya una fila con la palabra antes de "," y una fila como la palabra después de "," Residencia en ",".
Por ejemplo:
- Columna 1 - "ejemplo, ple" se ingresa en la primera fila,
- Reemplaza esto con "Exam, Ple",
- Haga estas dos filas y copie los valores de Column2 y Column3 tal como están.

Le agradeceríamos mucho que me dijera el script para aplicar las dos reglas anteriores a la columna.
¡Gracias de antemano! Tenga cuidado con COVID-19.
Primero se puede hacer con Titlecase (). El segundo se puede hacer, por ejemplo, recorriendo filas con For Each o de forma interactiva directamente desde JMP.
Solución interactiva:
1. Mesa de salida

2. Seleccione Col_a y vaya a Cols / Utilities / Text to Columns y use, como delimitador

3. A continuación, vaya a Tablas / Pila. Comience con configuraciones como esta y pruébela:

tabla de resultados:

4. Elimine la columna Etiqueta y seleccione una de las filas vacías en la columna Datos -> haga clic derecho -> seleccione celdas coincidentes -> eliminar filas

Con las secuencias de comandos, puede hacer, por ejemplo, algo como esto (requiere JMP16 debido a For Each, pero se puede cambiar a For-loop si es necesario). Esto también puede simplificarse si se sabe cuántas columnas tiene y cuántos valores puede haber en la cadena que se utiliza para duplicar filas.
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);
);
Impresionante .. jthi !!!!
El guión que sugirió resolvió por completo ambos problemas.
Muchísimas gracias.
Espero que tengas una buena Nochevieja 
El script resuelve ambos problemas, pero en general es una buena idea intentar hacerlo también de forma interactiva en JMP. Incluso puede hacer que JMP haga el Titlecase por usted a través de la plataforma Recode:

o crea una nueva columna de fórmula:

Y con JMP16, puede encontrar bastantes operaciones que realiza, desde un registro mejorado para automatizar fácilmente el proceso.