大家好
我尝试自动化我想更改一个公式中的列名称的过程(即“较低的 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 中使用,您可以只在此处打开复选框:
