大家好
我嘗試自動化我想更改一個公式中的列名稱的過程(即“較低的 90% Indiv TiterHPLCProtA@D14”與此列的“真實”公式(第二張圖片)。
我想對第一張圖片中的所有列名稱重複此過程。
該腳本需要類似以下內容:
- 在第一個公式中查找所有列名
- 從第一列名稱開始
- 在數據表中找到相應的列並複制公式
- 用列公式替換第一個公式中的列名
- 重複這個過程,直到第一個公式中的所有列名都被替換為它們的“真實”公式
第一列公式

我想在第一列公式中插入的公式示例,方法是替換“[...]TiterHPLCProtA[...]”

一切順利!
/馬可
作為@保丁指出您可以使用擴展中間公式對此進行分析,但您可以更進一步並使用該分析器中的保存擴展公式公式選項來解析新列公式中的所有這些引用。

例如:
Names Default To Here( 1 );
dt = Open( "$Sample_data/iris.jmp" );
dt << New Column("Log[Petal width]", Numeric, "Continuous", Format("Best", 12), Formula(Log(:Petal width)));
dt << New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Formula(:Sepal length + :Sepal width + :"Log[Petal width]"n));
prof = Profiler(
Y( :Column 1 ),
Profiler(
1,
Term Value(
Sepal length( 6, Lock( 0 ), Show( 1 ) ),
Sepal width( 3.125, Lock( 0 ), Show( 1 ) ),
Petal width( 1.269, Lock( 0 ), Show( 1 ) )
)
),
Expand
);
col = prof << Save Expanded Formulas;
如果你想通過腳本來做到這一點,你有幾個選擇。我將從查找列引用的 for 循環開始,檢查該列是否有公式,然後使用替換命令插入它。嘗試一下,如果遇到困難,請將其張貼在這裡。
您可以使用一些高級腳本技術來做到這一點:
您將必須跟隨列名到該列,
Formula_expression = Column << get formula
然後您可以用公式表達式替換列引用。
所以查看 expr(),命名 expr(),並代入 into()。
如果您這樣做的唯一原因是為了在 Profiler 中使用,您可以只在此處打開復選框:
