使用变量编写列切换器脚本时出现问题<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />您好,我在根据 GUI 显示框获取的列变量编写列切换器脚本时遇到问题。我这里的示例是使用图形生成器,但我尝试了另一个具有类似结果的平台。 我不知道这是否是因为我如何获取列名(obj << get items()),所以我将所有这些都包含在附加的 jsl 中。应该发生的情况是,图形生成器应该正确加载,列“Y”应该处于 Y 角色,然后“Y”加上我添加的两个虚拟列“temp”和“temp2”应该位于列切换器中。 但在 Column Switcher() 的第一个参数中,它似乎只喜欢在其中输入文本。 如果我输入文本“Y”或“:Y”,它工作正常,但我还没有找到一种方法来以有效的方式处理包含“Y”的列变量。 当我使用该变量时,它会抛出错误。
这是代码片段,我附加了一个精简的脚本,它将打开示例数据,生成一个自填充的 GUI(只需单击“确定”),您可以看到仅键入列名称将如何工作,但我的许多尝试使用变量不会。 我做错了什么,还是一个错误? 如果是这样,有解决方法吗? 我正在使用 JMP 11.2.0。
请注意,此片段仅供参考。 如果您想运行它,请运行整个附加文件。 yParamNames 是包含要绘制的参数的列表。“Y”是该列表中的第一列。
图形生成器(
尺寸(570、559)、
变量( X(列(dtDataOrig,tempName [1])),Y(列(dtDataOrig,yParamNames [1])),覆盖(列(dtDataOrig,partIdName [1]))),
元素(
线( X, Y, 图例( 13 ), 行顺序( 0 ), 汇总统计( "Mean" ) )
),
列切换器(
//"Y", // 输入列名文本即可
// 不起作用
//作为列(dtDataOrig, Y),
//作为列(:Y),
//作为列(Y),
//列(Y),
//列(:Y),
yParamNames[1], // <---- 我认为这可行,并且是最直接的实现,但无法让它接受变量。
y参数名称
)
);
谢谢,
麦克风
回复:使用变量编写列切换器脚本时出现问题此处报告的问题已有几年历史,但我想确认 Column Switcher 现在会像应有的那样评估其参数,因此客户不必再解决此问题。 它应该在 JMP 13 及更高版本中正常工作。
回复:使用变量编写列切换器脚本时出现问题谢谢大卫,这很完美。我一直在想是否应该尝试 Eval(Parse(Eval Insert())) 技术,但我不会想到在首先创建图形生成器对象后使用它。
也感谢 PMroz 的投入... 这个剧本实际上是你的主意。上次发现峰会上,我曾询问过如何以散点图方式显示温度特征数据,作为我的 Excel 脚本的替代品,您建议使用列切换器来生成图形。 效果非常好。 谢谢!
-麦克风
回复:使用变量编写列切换器脚本时出现问题尝试将列切换器从图形生成器功能中取出并使用消息创建它:
gb = 图形生成器(
尺寸(...),
变量(...),
元素(...)
);
评估(解析(评估插入物( “\[
gb << 列切换器( ^yParamNames[1]^, ^yParamNames^ )
]\" ))) ;
最后一段的语法不太容易详细解释,但很容易使用。它使用 Peter 概述的相同原理,但使用不需要转义序列来构建字符串的语法。
它有助于理解用于构建最后一段代码的顺序。你从这个模式开始:
评估(解析(评估插入物( “\[
]\" ))) ;
您在此模式中编写(或复制)JSL 代码:
gb << 列切换器( yParamNames[1], yParamNames )
要指示有需要动态计算的变量,请用“插入符号”引用:^variable^
回复:使用变量编写列切换器脚本时出现问题这就是你的想法吗? 我尝试过这个,但它的行为仍然相同。
斯特= “图形生成器(
尺寸(570、559)、
变量( X(列(dtDataOrig,tempName [1])),Y(列(dtDataOrig,yParamNames [1])),覆盖(列(dtDataOrig,partIdName [1]))),
元素(
线( X, Y, 图例( 13 ), 行顺序( 0 ), 汇总统计量( \!"Mean\!" ) )
),
列切换器(
//yParamNames[1],
:是的,
y参数名称
)
);” ;
评估(解析(斯特)) ;
回复:使用变量编写列切换器脚本时出现问题有时变量不能直接在 JSL 中工作。将图形生成器代码动态构建为您知道可以工作的字符串,并使用 eval(parse()) 执行它。
dt =打开( “$sample_data\big class.jmp” ) ;
斯特= “图形生成器(
显示控制面板( 0 ),
变量( X(:体重), Y(:高度)),
元素(
点( X, Y, 图例( 1 ), 抖动( 1 ) ),
拟合线(
X,
是,
传说(4),
拟合置信度( 1 ),
预测置信度( 0 ),
度(\!"线性\!" ),
等式(0),
均方根误差( 0 ),
R²(0)
)
)
)” ;
评估(解析(斯特)) ;