目标:使用BY变量作为外部循环来编写三个Y的双变量图。
交互式很简单:按Y调整Y.选择三个Y列,选择X.选择BY变量,在我的例子中为“Species”。
对于每个BY值,将得到的双变量图与Y(1),Y(2),Y(3)按X图一起分组。
脚本:我只发现在每个平台调用中插入BY。我的尝试是:
Bivariate( Y( :Name( “Y(1)” ) ), X( :X ), By( :Species) ),
Bivariate( Y( :Name( “Y(2)” ) ), X( :X ), By( :Species) ),
Bivariate( Y( :Name( “Y(3)” ) ), X( :X ), By( :Species) ),
<<{Arrange in Rows( 1 )}
但是对于物种的所有值,分组现在是Y(1)vs X,然后对于所有物种值等,Y(2)等。
如何将BY变量作为外部循环?从交互式版本创建的脚本不是通用的,即代替BY变量,它显式使用WHERE(:Species ==“rat”)等。BY变量的选项随每个数据集而变化,因此无法使用WHERE显式声明。
谢谢你的解决方案。我避免尝试FOR循环,因为交互式执行此操作的几个步骤非常诱人,我确信使用BY的同样简单的脚本。 您的方法肯定会起作用,并且使用自定义组标题将允许我一步将所有最终图形复制/粘贴到我的文档中,而无需手动格式化/调整每个图形的大小。
有多种方法可以完成您的任务,使用By(),自上而下,并使用Where(),自下而上。
我认为使用Where()提供更多灵活性可以自下而上构建多变量报告。 下面是为其编写的示例脚本 JSL Companion,JMP脚本语言的应用,第2版 ,第8章,“自定义显示”。
在这个例子中,它使用了2个不同的平台(Bivariate和Overlay);您将按组使用3个双变量图。而不是物种,它使用国家。
无论是一个州还是52个(包括哥伦比亚特区),这个例子都适用于任何州的子集。
希望这可以帮助。
这是一个“自下而上”构建显示的简单示例。这个例子创建了一个
自定义标题并删除“where”文本框。然后附加一个包含的OutlineBox
一个分析,就是plt1的HListBox,双变量分析和plt2。
请注意,由于这些图是单个报告,因此只有单个分析导航
需要。它们位于一个未显示的VListBox中,并且自从它处于活动状态
最终附加是第一次将两个图加载到窗口中。