部分 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 代码不能在最终脚本中工作,但如果隔离则可以工作谢谢ih,我感谢您的回复! 两个都试了,都不行。 在脚本指南中钓鱼时接受建议。
回复:部分 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);