编码属性没有两个数字你好,
我下面有一个 for 循环,用于遍历列,并为每一列分配一个“coding”属性。all_cols 是感兴趣的列列表。该函数运行正常——几乎符合预期。coding 属性已正确赋值,包括列的最小值和最大值。
for( y = 1, y <= N Items( all_cols ), y++,
row() = y;
lims = Eval List( { col min( eval( all_cols[y] ) ), col max( eval( all_cols[y] ) ) } );
all_cols[y] << Set Property( "Coding", Expr( lims ) );
);
然而,在增强日志中,我注意到“编码属性没有两个数字”这个错误在 all_cols 表中的每一列都出现一次。我已经统计过了。
问题就出在这里。在我的脚本后面,会执行标准最小二乘法。当我尝试从“效果摘要”中移除某个效果时,会出现一个错误框,显示相同的错误信息,如下所示。如果点击右上角的“x”关闭该框,或者点击“确定”按钮,该框会一直显示,导致 JMP 无法使用,直到我强制结束 JMP 的任务。

对于类似的 JMP 表达式求值,使用 for each() 函数也会出现同样的错误。这相当于选中所有列,然后通过“标准化属性”批量更改它们的所有属性。
对于目前的情况以及如何阻止它,大家有什么想法吗?
质量与工艺工程回复:编码属性没有两个数字编码列属性在“列信息”对话框中看起来是正确的,但实际上是不正确的。 我检查了数据表脚本,发现 << Set Property() 消息的第二个参数是按字面赋值的。 它不使用存储在限制. 您必须自己替换该值。 这是一种可行的方法。
For( i = 1, i < N Col(), i++,
lims = Eval List( {Col Min( Eval( Column(i) ) ), Col Max( Eval( Column(i) ) )} );
Eval(
Substitute(
Expr( Column( i ) << Set Property( "Coding", ccc ); ),
Expr( ccc ), lims
)
)
);
当您在 JMP DOE 平台中点击制表时,会自动添加该属性。 为什么要在建表后加上这个属性呢?
回复:编码属性没有两个数字all_cols 是一个列列表,但它正在被循环迭代。 定义 lims 下面的行使用 Expr() 调用 lims。这有帮助吗?
回复:编码属性没有两个数字以下是关于此问题的更多说明:
- 对循环中的每一列使用 << Get Property("Coding"),成功返回 col min 和 col max 值对。 这将验证是否正确分配了属性,并填充了值。
- 将 Set Property() 的代码隔离为空白脚本时,它运行良好,增强日志中没有错误通知...... 但是,请阅读下文。
- 在“拟合模型”对话框中,从单独的脚本执行 Set Property() 后,如上所述,错误仍然发生。

回复:编码属性没有两个数字在运行脚本以添加编码属性后执行此操作:单击数据表左上角“表”面板中的红色小三角,然后选择“复制表脚本”。 然后打开一个新的脚本编辑器并粘贴脚本。 检查设置属性参数。 您应该看到一个包含两个数字的列表作为第二个参数。 如果你不这样做,那么你的脚本是错误的。
回复:编码属性没有两个数字
优秀的捕获!这是表脚本中的内容。 我会摆弄我的编码以获得必要的值。谢谢你, @马克贝利!
在我发布决议之前,我会保持此线程打开。
回复:编码属性没有两个数字这是一个简单的修复。 已验证使用我的数据集!
for( y = 1, y <= N Items( all_cols ), y++,
row() = y;
lims = Eval List( { col min( eval( all_cols[y] ) ), col max( eval( all_cols[y] ) ) } );
Eval( Eval expr ( all_cols[y] << Set Property( "Coding", Expr( lims ) ) ) );
);