我想使用 JSL 将两件事应用于特定的列。
1.第一个字母以“”为基础大写。
(考试, ple -> Exam, Ple , JSL TEST -> Jsl Test)
2. 如果有“,”
复制行所以有一行使用“,”之前的单词,一行使用“,”之后的单词基于 ”,”。
例如:
- Column1 - 在第一行输入“exam, ple”,
- 将其替换为“考试,请”,
- 制作这两行并按原样复制 Column2 和 Column3 的值。

如果您能告诉我将上述两条规则应用于 Column 的脚本,我们将不胜感激。
先感谢您! 请小心 COVID-19。
第一个可以用 Titlecase() 来完成。 例如,第二个可以通过使用 For Each 循环遍历行或直接从 JMP 交互来完成。
互动解决方案:
1. 起跑台

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

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

结果表:

4.删除Label列并在Data列中选择空行之一->右键单击->选择匹配的单元格->删除行

使用脚本,您可以执行诸如此类的操作(由于 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);
);
该脚本确实解决了这两个问题,但通常最好尝试在 JMP 中以交互方式执行此操作。 您甚至可以通过 Recode 平台让 JMP 为您做 Titlecase:

或创建新的公式列:

并且使用 JMP16 执行相当多的操作,您可以从增强的日志中找到轻松自动化该过程。