创建公式大家好,
如何使用公式计算列X_9和X_10?
对于X_9:
当X_1 = X_1-> X_7(Row1)-X_8 = X_9
X_9-X_8
对于X_10:
当X_1 = X_1-> X_10(Row1)= X_9-X_8
X_9 + X_8
非常感谢您的帮助!
回复:创建公式这种问题已经问了很多遍了。您是否首先在过去的讨论中搜索了可以帮助您解决此问题的信息?
公式不太可能使用而() 功能。您可能要使用如果() 功能。另请参阅落后() 功能。
功能已记录在案。请参阅帮助> JMP文档库>使用JMP 。有专门讨论公式和函数的章节。另请参阅帮助>脚本编制索引 。将此浏览器设置为显示功能 (左上方的下拉菜单),然后搜索如果和落后 。
回复:创建公式很抱歉,但是我无法解释您对X_0和X_10所需的表示法。你能用书面形式解释吗?回复:创建公式你好,
谢谢您的回答。
希望您现在能理解。
最好的祝福。
只要X_1列中的行不变
->应在列X_9 = X_7减去X_8中计算。
只要X_1列中的行不变
->将X_8列添加到X_10列
回复:创建公式这是我的解决方案:X__9公式是
If( Row() == 1, sumX__8 = 0 );
If( :X__1 != Lag( :X__1 ),
sumX__8 = 0
);
sumX__8 = sumX__8 + :X__8;
:X__7 - sumX__8;
X__10公式是
If( Row() == 1, theSum = 0 );
If( :X__1 != Lag( :X__1 ),
theSum = 0
);
theSum = theSum + :X__8;
theSum;
附带的是已应用公式的数据表
回复:创建公式你好,
这真的很棒!
非常感谢你!
我希望我很快开始了解如何使用公式
... 可以自己做
祝您晚上/下午愉快(?)。
回复:创建公式你好,txnelson,
我正确理解您的公式吗?
X_9的公式
如果行= 1,则求和X_8 = 0
如果X_1是不等于(?!=滞后) 到X_1,然后sumX_8 = 0
否则sumX_8 = sumX_8 + X_8
和X_7-sumX_8
公式 X_10
如果行= 1,则总和= 0
X_1是否不等于(?!=滞后 ) X_1
theSum = 0
否则theSum = TheSum + X_8
填写总和
这个解释正确吗?
阳光明媚的问候,保持健康!
回复:创建公式


这是错误的....
您好,我正在尝试自己制作公式
如果在下一个,我如何获得下一个?
谢谢你的帮助。
回复:创建公式您对X__9的解释不正确。 让我尝试解释它是如何工作的。
关于JMP中的公式,需要理解3个项目,这将有助于解释
- JMP从第一行开始为数据表中的每一行运行公式。 然后函数Row()将返回JMP当前所在的行
- 您可以在公式中创建任意数量的内存变量(即sumX__8),它们将保持其值,直到在公式中逐行更改为止。 这是公式的关键之一。 此变量逐行累加X__8的值,直到观察到新的X__1值。 发生这种情况时,将sumX__8设置回0。
- 在公式中针对给定行执行的最后一次计算的结果是将在数据表中为该行显示的值。
因此,对X__9列的公式的解释是:
对于第1行
如果Row()等于1,则将内存变量sumX__8设置为0。 确实是Row()等于1,所以sumX__8初始化为0。内存变量sumX__8用于计算X__1分组内X__8的累积和。
如果行1的X__1的值不等于X__1的前一个(滞后)值,请将sumX__8的值设置为0。 由于没有先前的值X__1,因此不会进行任何计算。 sumX__8将保持其当前值为0
下一行( sumX__8 = sumX__8 +:X__8; ),现在可以设置该行的累计总和。 它通过获取sumX__8的当前值为0并将其添加到第0行的X__8值(对于0的结果为0)来完成此操作。注意:这行代码不是以前的IF()函数的“其他”计算。 这行代码针对每一行执行。
下一行代码(:X__7-sumX __ *)执行计算行1的X__7的值,即20,并减去X__7的累加和(sumX__8的值为0),得出20-0或20的值。 由于这是公式中第1行的最后一次计算,因此该值最终成为X__9的第1行的值
第2行
Row()不等于1,因此不会执行sumX__8 = 0的结果代码
第2行的X__1的值是1000,它等于X__1的前一个(滞后)值,因此它将不运行结果代码
将为此行计算sumX__8,结果是sumX__8的当前值为0,将其添加到第2行的X__8的值为0(结果为0)
X__9的行值计算为X__7的第2s值,即20,并减去sumX__8的当前值(即0),结果值为20。
此过程逐行继续。 在第9行,出现X__8的第一个非0值,因此sumX__8的值对于值1变为0 + 1。 第10行再将sumX__8加一个,依此类推。
下一个重要的行是第20行。 在执行该行的公式期间,IF()函数“ If(:X__1!= Lag(:X__1)”为true。 :X__1等于1001,并且X__1的前一个(滞后)值是1000,因此sumX__8的结果代码被设置为0,因此累积总和将重新开始。
您的解释将更改为:
X_9的公式
如果行= 1,则求和X_8 = 0
如果X_1是不等于的先前值 X_1然后sumX_8 = 0
sumX_8 = sumX_8 + X_8
X__9计算为X_7-sumX_8
X__10的公式与X__9几乎相同,因此使用您的解释和我的修改,它是
公式 X_10
如果Row = 1,则theSum = 0
X_1是否不等于的先前值 X_1 theSum = 0
theSum =总和+ X_8
通过引用变量theSum的值来设置X__10
回复:创建公式使用公式创建器很难创建复杂的公式。 因此,我的经验法则是,如果要进行多行计算,我将在Formula Creator中使用脚本编辑器。
如果您双击带有“无公式”字样的框

您将看到一个输入框,您可以在其中输入一行...或几行

但是,如果您单击框右上角的对象

您将显示“脚本编辑器”,您可以在其中轻松输入整个脚本
