发布日期: 09/18/2023

按优先顺序生成公式

生成公式时最好以充当参数的任意表达式开头。这是因为函数具有较高的优先级,并且始终与相应的参数组合在一起。同时还建议尽量遵循优先级从高到低的顺序来创建表达式。若需要圆括号,务必在输入要括起来的表达式之前先输入左圆括号。

例如,假定有一个包含 ABC 这三列的数据表,请使用以下步骤编写表达式 A(B + C)。请注意,该表达式不同于 A x B + C,后者计算为 (A x B) + C

要输入表达式,请执行以下步骤:

1. 在“列”列表中点击列 AImage shown here

2. 点击“公式编辑器”小键盘中的乘号按钮 Image shown hereImage shown here

3. 输入左圆括号。Image shown here

4. 在“列”列表中点击列 BImage shown here

5. 点击“公式编辑器”小键盘中的加号按钮 Image shown hereImage shown here

6. 在“列”列表中点击列 CImage shown here

由于优先顺序决定每个函数影响的参数,所以它也会影响表达式的分组。选择公式中的函数,检查优先顺序规则是如何应用的。

构建公式以提高计算效率

通常,没有必要在构建公式时考虑高效计算。无论公式结构如何,多数公式的计算都几乎是在瞬间完成的。这是因为在计算列值时,统计函数和常数表达式只计算一次。

不过,在创建条件表达式时,请记住 Match 与等效的条件函数 If 相比,计算速度更快,且占用的内存空间要少。(请注意,Match 忽略尾随空格,但 If 不忽略。)

例如,使用 Big Class.jmp,您可以根据儿童的年龄预测其身高,如图 7.14 所示。58.125 英寸是基准身高,在此基础上根据年龄变量的值来增加数量。

图 7.14 Match 条件语句比 If 函数的计算速度更快 

The Match Conditional Evaluates Faster Than the If Function

“Match”条件语句比 If 函数的计算速度更快,这是因为年龄变量对数据表中的每一行仅计算一次。If 条件必须在每个 If 子句中为每行都计算年龄变量,直到子句计算结果为真。

需要更多信息?有问题?从 JMP 用户社区得到解答 (community.jmp.com).