部分 JSL 代码在最终脚本中不起作用,但如果隔离则可以工作警告:初级问题
我有一个数据表,在其中添加一个临时列(:Parameter_new),以便在满足特定条件时填充条目。 然后我想将这些条目放入另一列(:Parameter_old)。 我的印象是,与将单独的行复制到不同的脚本中相比,代码作为最终脚本的一部分时的行为有所不同。 当逐行应用脚本代码时,一切都按预期进行。 当实现到最终脚本中时,我只得到空白值。 我哪里出错了?
//Code works OK
dt << New Column ("Parameter_new", character);
dt << go to( :Parameter_new ) << move selected columns( After( :Parameter_old ));
For Each Row(
If(:Parameter_old == "Parameter x",
:Parameter_new = :Parameter_old || " " || "by" || " " ||:Method_description));
dt << select where(:Parameter_old == "Parameter x");
//Code does not work and deletes all entries in column "Parameter_old", i.e. cells come out blank
//Code does however work if applied individually, line by line
:Name("Parameter_old")[dt << get selected rows] = :Parameter_new;质量和工艺工程回复:部分 JSL 代码在最终脚本中不起作用,但如果隔离则可以工作你好。 社区平台似乎发生了变化。 我们已联系支持人员。 同时,我们实施了临时修复,应该允许您按预期使用 按钮。 谢谢。
回复:部分 JSL 代码在最终脚本中不起作用,但如果隔离则可以工作当我在此处发布到社区论坛时,我的所有 代码块都会被标记为错误。具体来说, 块内的 `class=" language-jsl"` 被删除,如下所示
Names Default To Here( 1 );
x = [10, 50, 90];
y = [10, 90, 10];
New Window( "Line Seg Example", g = Graph Box( Line Seg( x, y ) ) );
frame = g[FrameBox( 1 )];
seg = (frame << Find Seg( Line Seg( 1 ) ));

回复:部分 JSL 代码在最终脚本中不起作用,但如果隔离则可以工作我很高兴您能够解决这个问题。 至于颜色编码,看起来您正在使用编辑器工具栏中 左侧的 。
您可能尝试在同一代码片段上使用它们,但只有一个有效。 我已经修复了您两篇文章中的格式。
回复:部分 JSL 代码在最终脚本中不起作用,但如果隔离则可以工作我现在学习Ifs是不是觉得很愚蠢......
另外,为什么我的 JSL 代码片段全是灰色的? 如何获得正确的字体和颜色?
dt2 << New Column ("Parameter_new", character);
dt2 << go to( :Parameter_new ) << move selected columns( After( :Parameter_old ));
For Each Row(
If( :Parameter_old == "Parameter x", :Parameter_new = :Parameter_old || " " || "by" || " " || :Method_description,
:Parameter_old != "Parameter x", :Parameter = :Parameter_old));回复:部分 JSL 代码在最终脚本中不起作用,但如果隔离则可以工作谢谢。 看起来很有趣。 在我整理出有关此方法的详细信息之前,请给我一些时间,可以以完整的形式发布我的初始代码并接受您的帖子作为解决方案。
(另外,为什么我的 JSL 代码在我的帖子中格式化为没有颜色? 我使用 图标来插入片段。)
编辑:关于订阅的精彩帖子。 没有意识到这一点,但做了一些有趣的阅读。 从那以后,我接受了自己的回答作为解决方案,因为它对我来说直观上看起来更容易。
回复:部分 JSL 代码在最终脚本中不起作用,但如果隔离则可以工作谢谢,我很感谢您的回复! 两个都试过了,没用。 在阅读脚本指南时接受建议。
回复:部分 JSL 代码在最终脚本中不起作用,但如果隔离则可以工作最终语句的左侧 (LHS) 有一个矩阵,右侧 (RHS) 有一个列。
您有两种不同的情况:ForEachRow 内部和外部。 如果在内部,则存在隐式行并且列解析为标量。 如果在外部,则不存在隐式行。 当它在 ForEachRow 中工作时,您可能恰好选择了一行。
列矩阵 (LHS) 仅支持 RHS 上的标量。 它不能与 RHS 上的矩阵一起正常工作。
您可以使用数据表下标反而。 这会将表视为 2D 矩阵(在这个小示例中为 3 行,1 列。)
dt = Open( "$sample_data/big class.jmp" );
dt[[2, 3, 4], {name}] = dt[[5, 6, 7], {name}];回复:部分 JSL 代码在最终脚本中不起作用,但如果隔离则可以工作在移至下一行之前,JMP 可能不会评估 Parameter_new 中的公式。尝试在 For Each Row 函数之后添加以下内容:
dt << Run Formulas;
另外,您可以等待:
Wait(0);