你好,
我是 JMP 脚本的新手,一直在尝试为给定数据表的特定流程编写脚本。为了帮助解释我想要什么,这里有一个粗略的示例表。

我想要编写一个脚本,该脚本将迭代检查“步骤名称”列中的每一行的值“Sleep”。当它到达包含“Sleep”的行时,它将检查“Speed”列下的相应值。然后,我希望脚本检查“Speed”列下共享相同值的所有先前行。当它在“Speed”列下共享相同的值时,它将检查“Material”列下的现有值。如果“Material”下存在值,它将获取该值和“Speed”下的相应值并将它们输出到新表中,如下所示:

我觉得这需要大量的 For 循环,但我不知道该如何处理。如果您能提供任何关于如何编写此脚本的建议,我将不胜感激。谢谢
仅基于您的示例数据,是否只需删除所有缺少材料的行并将步骤名称的所有值设置为睡眠就足够了?
我相信是的,只需删除缺少材料的行,同时将步骤名称的其余值设置为 sleep 就足够了。我该如何编写脚本呢?
这也可以通过 JMP 以交互方式完成,但对我来说,将其编写为脚本会更快,因此就在这里。请注意,我们的表格与您使用的表格略有不同(列名和值不同)。
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(10),
Compress File When Saved(1),
New Column("Step", Character, "Nominal", Set Values({"W", "E", "P", "F", "S", "C", "W", "P", "S", "F"})),
New Column("S", Character, "Nominal", Set Values({"F", "F", "F", "F", "F", "S", "S", "S", "S", "S"})),
New Column("M", Character, "Nominal", Set Values({"", "F", "", "P", "", "", "S", "G", "", ""}))
);
wait(1); // demo purposes
dt << Select Where(Is Missing(:M)) << Delete Rows; // << Get Rows Where() / << Where() are generally faster than select where
wait(1); // demo purposes
Column(dt, "Step") << Set Each Value("S");我修改了这个脚本以适合我在数据表中的使用,它看起来不错,非常感谢!