从行选择中设置规格限制列属性你好社区,
此表中的示例

我有一个表,生成 5 个人的姓名列。 所有人都有特定的规格限制,即 HighL 和 LowL 行。 其中一些从未有 HighL 和 LowL 或两者的规格限制。 但我想对那些有上限和下限的人施加规格限制。 想象一下我总共有 100 个人,他们有随机的规格限制。
有人可以帮我编写一个脚本,可以自动设置第 3 行和第 4 行(所有列名称中的 HighL 和 LowL)的规格限制。 只需输入规格上限和下限即可,不需要目标。
拜托……我无法手动执行此方法,因为方法太多了。
自动化和脚本编写回复:从行选择中设置规格限制列属性如果您将 HighL 重命名为 USL,将 LowL 重命名为 LSL,您可能已经可以使用管理规格限制来执行此操作。


从限制表加载

参考同表


如果您想看到它们,请从红色三角形添加显示限制到所有

最后按保存到列属性

(我的第 2 列没有添加规格限制,因为它的 LSL 高于 USL)
回复:从行选择中设置规格限制列属性先生,在我的桌子上,我有一些知名人士不需要对 USL/LSL 或两者进行规格限制。 请参考我下面的图片。

您知道如何禁用或删除单个密钥或脚本中的所有数字,这些数字只能对除 LSL (-9.9999e+100) USL(9.9999e+100) 之外的数字施加规格限制
您也可以给我写一个脚本,可以将所有这些 HighL 和 LowL 重命名为 USL 和 LSL,并将所有规格限制自动放入除无穷大规格之外的所有这些名称中。
我将不胜感激这个帮助,
回复:从行选择中设置规格限制列属性如果您无法将这些值更改为缺失,我很可能会:
- 创建包含 HighL 和 LowL 行以及所有列的子集
- 使用 recode 将 HighL 和 LowL 更改为 USL 和 LSL
- 使用重新编码将 9.99e100 值更改为缺失值(或者其他方法也可以)
- 使用创建的子集作为限制表
- 设置限制后,关闭子集
JMP 很可能可以使用增强型日志/工作流构建器为您编写大部分脚本。 它可能无法编写从表中获取限制然后从管理限制将它们设置为列属性的过程的脚本,但脚本索引确实有这样的示例。 这是从限制表加载的示例

回复:从行选择中设置规格限制列属性你好,先生,
我已经创建了一个脚本重新编码来重命名 USL 和 LSL。 但我还是不知道如何改变它的值9.99e100 缺少行选择而不是列选择。 我尝试了很多次还是失败。 我还坚持编写脚本来设置所有列属性的所有规格限制。 请帮我。
// Set Auto Spec Limit
Names Default To Here( 1 );
dt = Current Data Table();
// Recode column: Spec Limit
Local( {dt},
dt = Current Data Table();
dt << Begin Data Update;
dt << Recode Column(
dt:Spec Limit,
{Map Value( _rcOrig, {"HighL", "USL", "LowL", "LSL"}, Unmatched( _rcNow ) )},
Update Properties( 1 ),
Target Column( :Spec Limit )
);
dt << End Data Update;
);
// Recode row: USL
Local( {dt},
dt = Current Data Table();
dt << Clear Select << Select Rows( [2] );
selRows = dt << Get Selected Rows;
dt << Begin Data Update;
dt << Recode Selected Rows(
dt:USL,
{Map Value( _rcOrig, {"9.9999e+100", "."}, Unmatched( _rcNow ) )},
Update Properties( 1 ),
Target Row (:USL)
);
dt << End Data Update;
);
// Recode row: LSL
Local( {dt},
dt = Current Data Table();
dt << Clear Select << Select Rows( [3] );
selRows = dt << Get Selected Rows;
dt << Begin Data Update;
dt << Recode Selected Rows(
dt:USL,
{Map Value( _rcOrig, {"-9.9999e+100", "."}, Unmatched( _rcNow ) )},
Update Properties( 1 ),
Target Row (:LSL)
);
dt << End Data Update;
);下面我附上了使用此脚本的示例数据表。
回复:从行选择中设置规格限制列属性重新编码适用于列,而不适用于行。名为“Recode Selected Rows”的脚本索引中没有此类消息。 要执行您似乎正在尝试执行的操作,您需要
- 选择有问题的行
- 将所选行子集到新数据表中
- 对子集数据表中要重新编码的每一列运行重新编码 JSL。
- 使用更新平台将数据从子集化表移回原始数据表。
回复:从行选择中设置规格限制列属性嗨吉姆,谢谢你的帮助。 我设法在特定列中重新编码特定名称。 但是如何编写一个可以在我的表中的整列中重新编码的脚本呢? 我实在不知道怎么写。 是不是每个名字都要写? 因为并非每个表都有相同的名称列。 请指导我。
// Recode column: Paul
Local( {dt},
dt = Current Data Table();
dt << Begin Data Update;
dt << Recode Column(
dt:Paul,
{Map Value(
_rcOrig,
{-9.9999e+100, ., 9.9999e+100, .},
Unmatched( _rcNow )
)},
Update Properties( 1 ),
Target Column( :Paul )
);
dt << End Data Update;
);
// Clear row selection
dt << Clear Select;回复:从行选择中设置规格限制列属性一个相当简单的选择是当您的子集包含 LSL 和 USL 行时

转置这个(如果我没记错的话,用脚本在此处输入列比重新编码要容易得多)

将标签列重命名为变量,重新编码 LSL 和 USL 列

并使用此表作为您的规格表
