编写循环脚本(可能是双循环)你好,
我需要一些帮助来为客户构建脚本(请参见附件)。
他想在JMP中自动计算“相对时间”列(而此处是在Excel中离线计算)。
对于每个“批号”,当“新批触发器” = 1时,相应行的“日期/时间”用作参考(将其设置为“ 0”),并且“相对时间”计算为[日期/时间i-日期/时间参考]。
我还不是真的“流利的脚本”,任何帮助将不胜感激。
谢谢你。
伊曼纽尔
回复:编写循环脚本(可能是双循环)嗨,伊曼纽尔,
最简单的方法是使用列公式进行交互。
- 首先,编辑新批次标记已有的列公式,以允许第一行。 我们也希望此处的值等于1。 然后,对于第一行和任何符合“新批次”条件的行,我们将具有1。 (请参阅下面的公式图像。)
- 为“新批次”行的累加总和添加列转换。 这样的效果是为每个批次编号,并允许分组。 (请参阅第二个公式屏幕截图和数据表屏幕截图以查看编号)
- 添加一个公式列以计算时间与列最短时间之间的时差,按您在上面的第一步中添加的行进行分组(请参阅第3个公式屏幕截图和数据表屏幕截图,以将每个新组的相对时间重置为0)。




如果客户坚持使用脚本编写脚本,则可以使用以下脚本,该脚本可以修复“新批处理触发器”列中的公式,并在上表中添加最后两列。
Names Default To Here( 1 );
dt = Current Data Table();
dt:New Batch Trigger << formula( If( Row() == 1 | Dif( :Temperature C in °C, 1 ) + Dif( :Temperature B in °C, 1 ) < -60, 1, 0 ) );
dt << New Column( "Batch Group", formula( Col Cumulative Sum( :New Batch Trigger ) ) );
dt << New Column( "Rel time within group", formula( :"Date/Time"n - Col Minimum( :"Date/Time"n, :batch group ) ) );
附表。
干杯,
布雷迪
回复:编写循环脚本(可能是双循环)你好布雷迪,
谢谢你。 我仍然有些困惑,因为它与他们自己的“相对时间”列无关。 我认为问题出在以下事实:他们的参考行位于批次的“中间”,因此存在“相对时间”为负数。
伊曼纽尔