每次循環迭代時更改的變量名稱我正在嘗試創建一個新的列公式,每次迭代 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() 的第一個參數必須是一個字符串。試試這個 "Machine"||char(i)||"RunDuration" 代替。
如果我按照 JMP 的方式解釋您的公式,它類似於“在“機器”列中獲取當前行的值並附加索引的當前值並附加變量 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)) ]\")));
);