你好,
初級 JMP 用戶,
我想創建一個新列“Tag Range”,其中包含公式“Tag.ULIMIT-Tag.LLIMIT”。
Tag.ULIMIT 和 Tag.LLIMIT 是我的數據表中的列。
我可以通過在公式中明確定義列名來創建列,如下所示,但我想用變量“UpperLIMIT”和“LowerLIMIT”替換它們。
(最終,我想運行一個腳本,根據用戶選擇的標籤名稱創建此列)
Names Default To Here( 1 );
a = "Tag";
UpperLIMIT = a || ".ULIMIT";
LowerLIMIT = a || ".LLIMIT";
dt = Current Data Table();
這有效:
dt << New Column( a || " Range", formula( :Tag.ULIMIT - :Tag.LLIMIT ) );
這不起作用:
dt << New Column( a || " Range", formula( :UpperLIMIT - :LowerLIMIT ) );
在創建公式之前,JMP 不會評估“公式”定義中的語句。它假定公式是它需要的。因此公式在指定時需要在句法上按需進行。下面的代碼為您的示例處理
Names Default To Here( 1 );
dt = Current Data Table();
a = "Tag";
UpperLIMIT = a || ".ULIMIT";
LowerLIMIT = a || ".LLIMIT";
Eval(
Parse(
"dt << New Column( \!"" || a || " Range\!", formula( :"
|| UpperLIMIT || " - :" || LowerLIMIT || " ) )); "
)
);