在给定条件下设置行值你好,
我是 JSL 新手,并尝试创建一个脚本来更改给定列中某些行的值。
我遇到的一般问题是我的数据被分类为来自不同位置,而实际上这些站点是相同的。 因此,当我将它们绘制成图表时,我得到了超出必要数量的组。
这是我希望能够实现我的目标的代码片段:
for each row(
if( As Column( dtSum:Name( "Originating Fab" )) == "D1C",
As Column( dtSum:Name( "Originating Fab" )) << Set Values( { "D1D" } );
);
);其中“dtSum”是我的汇总表,“Originating Fab”是描述该行来自哪个位置的列。
因此,在上面的代码中,我想将原始站点值从“D1C”更改为“D1D”,因为它们都是相同的位置。
任何帮助将不胜感激。
谢谢,
莱因
自动化和脚本编写大规模定制质量和工艺工程回复:在给定条件下设置行值右键单击感兴趣的列并选择重新编码。您将能够选择列中的现有值并指定将其更改为什么。这就是我所说的交互方法。
回复:在给定条件下设置行值嘿吉姆,
感谢您的快速回复,我之前没有听说过 get RowsWhere() 函数。
然而,这些解决方案似乎都对我没有任何好处。
我知道 JMP 可以交互式地生成脚本,但我不太熟悉如何在这种情况下执行此操作。 (我主要将其用于图表。)
对交互路线有帮助吗?
回复:在给定条件下设置行值您可能想要探索以交互方式执行此操作,并使用 Recode 进行这些更改。它还可以生成脚本来进行更改。
但如果您确实需要在 JSL 中执行此操作,我更有效的方法是使用 Get RowsWhere() 并立即执行所有更改,而无需循环
dtSum:Name( "Originating Fab" )[ dtSum<<GET rows="" where=""></GET>
另外,如果您想继续使用循环格式,这是代码的更简洁版本
for each row(
if( dtSum:Name( "Originating Fab" ) == "D1C",
dtSum:Name( "Originating Fab" ) ="D1D";
);
);