该脚本确实解决了这两个问题,但一般来说,尝试在 JMP 中以交互方式执行此操作是个好主意。 您甚至可以通过 Recode 平台让 JMP 为您制作 Titlecase:

或创建新的公式列:

并且使用 JMP16 执行相当多的操作,您可以从增强的日志中找到轻松自动化该过程。
第一个可以用 Titlecase() 完成。 第二个可以通过使用 For Each 循环行或直接从 JMP 交互来完成。
互动解决方案:
1. 起始表

2. 选择 Col_a 并转到 Cols / Utilities / Text to Columns 并使用 , 作为分隔符

3. 接下来转到表/堆栈。 从这样的设置开始并尝试一下:

结果表:

4. 删除标签列并选择数据列中的空行之一 -> 右键单击 -> 选择匹配的单元格 -> 删除行

使用脚本,您可以执行类似的操作(由于 For Each,需要 JMP16,但如果需要,可以将其更改为 For-loop)。 如果知道有多少列以及用于复制行的字符串可以有多少个值,这也可以变得更简单。
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);
);