在公式中使用循环你好,
是否可以在列公式中使用循环? 例如,我有一个名为 TEST 的列,我写入 (i=1, i<5, i++, :TEST=char(i)) ...但我没有得到任何内容,在我点击后该列为空白应用/确定。 从循环中我希望得到该列中的每一行都是 4。
抱歉问了这么简单的问题,但快速浏览“使用 JMP”手册的附录 A 无法找到答案。
谢谢,
艾哈迈德
回复:在公式中使用循环我确实认为您目前对公式用法的理解是错误的。我对您对公式的预期结果感到特别困惑
For( i=0, i<=5, i++, :Strain )
默认情况下,每行运行一次公式。因此,大多数时候不会使用 For() 循环。
我附上了一个数据表,其中应用了 4 个不同的公式。我希望,如果您查看不同的公式,它将帮助您调整对公式工作原理的理解。
回复:在公式中使用循环非常感谢您的帮助/回复。
关于我曾经尝试填充“%elongation”列中的前五行的简单 for 循环,我很好奇为什么该列保持不变/空白。 我在如何使用公式和/或定义参数方面是否完全偏离了目标?
在学习 JMP 和 JSL 的早期阶段,尝试从错误中学习。
再次感谢您的帮助!
回复:在公式中使用循环这是创建伸长率百分比的公式。这不是一个非常有效的公式,但无论数据的顺序如何,它都会找到值。
curForm = :Formulation;
curStrip = :Strip;
theRow = (Current Data Table() << get rows where(
:Formulation == curForm & :Strip == curStrip & :Stress == :Tensile Strength
))[1];
:Strain[theRow];
如果数据按配方和条带排序,则可以使用下面更有效的公式。
If( Row() == 1 | :Formulation != Lag( :Formulation ) | :Strip != Lag( :Strip ),
curForm = :Formulation;
curStrip = :Strip;
theRow = (Current Data Table() << get rows where(
:Formulation == curForm & :Strip == curStrip & :Stress == :Tensile Strength
))[1];
);
:Strain[theRow];
回复:在公式中使用循环非常感谢您的回复。
我试图解决的最后一个问题如下:我有多个配方的多个测试条的应力应变数据(请参阅随附的 JMP 数据文件)。 附表包含 4 个不同的配方+条“组”,即)FormA/strip1、FormA/strip2、FormB/strip1、FormB/strip2... 对于每组,我需要确定 1) 最大应力(拉伸强度)和 2) 与最大应力相关的应变。 为了确定最大应力,我创建了“拉伸强度”列,并在公式编辑器中简单地使用了“Col Max()”(见下图)

现在,我希望用与每组最大应力(拉伸强度)相关的应变值填充“%伸长率”列,这就是我的问题所在。我想知道是否有一种方法可以使用列公式(或 JSL 脚本)来完成此操作,而不是通过表格手动识别这些应变值并填充“%伸长率”列。
我在想这可能涉及循环和/或条件函数的组合。
最初,我尝试使用 for 循环迭代“应力”列,以检查给定行中的应力是否=拉伸强度(如果是,则使用关联的应变值填充“%伸长率”列)。 有关初始列公式/尝试,请参阅随附的 JPG 文件“应力应变数据_jmp 社区帮助_迭代尝试”。 该列保持不变/空白。
然后,我尝试简单地使用给定行中的应变值填充“%elongation”列中的前 5 行(请参阅随附的 JPG 文件“stress-strain data_jmp Community help_for loop”)。 该专栏仍然空白,这就是促使我发表第一篇文章的原因。 我假设我使用这些函数的方式存在关键错误。
**此外,我认识到我最初的公式对于我的最终目标来说过于简单。
对于冗长的帖子以及我是否有任何不清楚的地方表示歉意。 我很乐意提供任何澄清。 我对 JMP 还很陌生,因此任何有关这方面的建议/帮助将不胜感激。 先感谢您。
回复:在公式中使用循环你的具体问题是什么。您可以发布您当前使用的不适合您的公式吗?
回复:在公式中使用循环您好,我第一次尝试在列公式中使用循环,我似乎遇到了您原来的问题。
您能否澄清一下您是如何解决这个问题的,以及您所说的作业应该在循环之外是什么意思?
谢谢!
回复:在公式中使用循环无需回复....找到问题了,谢谢! 赋值应该在循环之外。