每次循环迭代时都会更改的变量名称我正在尝试创建一个新的列公式,每次迭代for循环时都会更改变量名。请参阅下面的JSL代码:
For(i = 1, i <= 5, i++,
dtMachineStartandStopTimes << New Column(:Machine||char(i)||RunDuration, Formula(:Machine||char(i)||StopTime-:Machine||char(i)||StartTime));
);
每行 dtMachineStartandStopTimes 标题为“Machine1StartTime”的列通过“Machine5StartTime”以及“Machine1EndTime”通过“Machine5EndTime”。上面的代码不起作用,但我觉得应该有一个简单的方法来使它工作。
仅供参考,我已经查看了这篇文章 https://community.jmp.com/t5/Discussions/How-to-create-variable-names-depending-on-loop-number/td-p/7422 ,但我无法弄清楚海报在做什么。
Re:每次循环迭代时都会更改的变量名称那很有效!非常感谢!
Re:每次循环迭代时都会更改的变量名称New Column()的第一个参数必须是一个字符串。 试试这个“机器”|| char(i)||“RunDuration”代替。
如果我按照JMP的方式解释你的公式,它就像是“获取列”Machine“中当前行的值并附加索引的当前值并附加变量StopTime的值... 等等 您不能以这种方式构造列引用。 在这种情况下,你需要在应用它之前解析公式以摆脱“char(i)”的东西,因为只要“i”的值不再是什么时候就会破坏它。公式已创建,或未定义。 以下是如何做到这一点:
For(i = 1, i <= 5, i++,
Eval(Parse(Eval Insert("\[dtMachineStartandStopTimes << New Column("Machine^i^RunDuration", Formula(:Machine^i^StopTime - :Machine^i^StartTime)) ]\")));
);