<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />在jmp中创建脚本非常新。我对此有疑问,这是我写的脚本。我打算做的是我有两个表,例如,表1包含每个测试的限制,(请记住,实际的表有几千个测试,这只是一个例子)
表格1
| 测试 | 下限 | 上限 |
|---|
| 测试1 | 3 | 10 |
| 测试2 | 3.4 | 12 |
| 测试3 | 五 | 12 |
而另一张表(几列长)包含测试结果
表2
| 测试1 | 测试2 | 测试3 |
|---|
| 五 | 6 | 8 |
| 五 | 6.1 | 8.11 |
| 5.2 | 6.23 | 8.12 |
我打算做的是绘制第二个表的可变性图表,用于几个选定的测试(4或5),我希望可变性图表根据第一个表格的限制自动绘制参考线 - 上下限制。现在我陷入了这种情况,我不知道如何完成我的脚本。目前它看起来像这样,我可以得到参考线在固定点绘制,比如“1”。但我想要做的是提取用户决定绘制的任何测试,并从第一个数据表中提取限制,并将限制绘制为参考线。
有没有办法提取可变性图表的用户选择参数(X和Y),并使用搜索其限制来绘制参考线?截至目前,我的代码看起来像这样
dt_data1 =数据表(1); //限制表
dt_data2 =数据表(2); //实际数据表
// GUI窗口的开始
// ------------------------------------------------ --------------------------------------------------
ColSel =过滤器列选择器(数据表(dt_data1),250,10,ColumnToPlot = ColSel <<获取选定);
ColSel << Set Max Selected(2); //允许的最大选定列为1
win =新窗口(“测试”,
<<模式,
文本框(“绘制可变性图表的列”),
COLSEL,
go =按钮框(“OK”,
ColumnToPlot = ColSel <<获取选中
);
);
// ------------------------------------------------ -----------------------------------------------
// GUI窗口结束
等(1);
当前数据表(dt_data2);
Colnames = dt_data2 <<获取列名(数字,字符串);
LowerLimit = colnames [2];
UpperLimit = colnames [3];
当前数据表(dt_data1);
可变性图表(
Max Iter(100),
Conv Limit(0.00000001),
数字整合Abscissas(128),
数字函数Evals(65536),
分析类型(“选择最佳分析(EMS REML贝叶斯)”),
点滴滴答声(1),
Show Box Plots(1),
Std Dev Chart(0),
显示范围栏(1),
SendToReport(
调度(
“”,
“2”,
ScaleBox,
{添加参考线(0,“实心”,“黑色”,“”,1),
添加参考线(1,“实心”,“蓝色”,“”,2); } //按导入的值替换1
)
)
);
如果将限制移动到测量数据表中每个列的规格限制列属性,则从限制数据表中,可变性图表平台将自动显示限制。
这是我最近写的一个脚本,用于回答关于“导入控制限制”的帖子。 此脚本从限制数据表中读取并将其移动到测量数据表中。
//在运行此脚本之前,打开测量并限制数据表。
//如果您使用我附加到答复的两个文件,则dtmeas =和
// dtlim =下面的语句指向正确的数据表。 但如果
//您使用不同的数据表,您需要更改数据表名称
名称默认为此处 ( 1 ) ;
dtmeas = 数据表 ( “测量表” ) ;
dtlim = 数据表 ( “限制表” ) ;
//根据成绩代码拆分数据表,以便每个组都不同
//列
dtsplitmeas = dtmeas << 分裂 ( 拆分 ( : GRDBWT ) ,分裂 ( : ACC基重 ) ) ;
//从拆分数据表中获取列名,这些列名实际上是不同的
//成绩代码
COLS = dtsplitmeas << 获取列名称 ( 串 ) ;
//遍历拆分数据表并从中读取该列的值
// dtlim数据表 填充规格限制和控制限制
对于 ( 一世 = 1 ,一世 <= N Cols ( dtsplitmeas ) ,一世 ++,
limrow = 尝试 ( ( dtlim << 得到行在哪里 ( dtlim : Gradecode == COLS [ 一世 ] ))[ 1 ] , 。 ) ;
如果 ( 不见了 ( limRow ) == 0 ,
眼镜 = { LSL ( 。 ) , USL ( 。 ) ,目标 ( 。 ) ,显示限制 ( 1 )} ;
眼镜 [ “LSL” ] = dtlim : 低 [ limrow ] ;
眼镜 [ “目标” ] = dtlim : TARG [ limrow ] ;
眼镜 [ “USL” ] = dtlim : 高 [ limrow ] ;
柱 ( dtsplitmeas ,烧焦 ( COLS [ 一世 ] ) ) << 设置属性 ( “规格限制” , EVAL ( 眼镜 ) ) ;
controllimits = { X条 ( 平均 ( 一个 ) , LCL ( b ) , UCL ( C ) )} ;
替代入 ( controllimits , EXPR ( 一个 ) , dtlim : LWarn [ limrow ] ) ;
替代入 ( controllimits , EXPR ( C ) , dtlim : uwarn [ limrow ] ) ;
替代入 ( controllimits , EXPR ( b ) , dtlim : TARG [ limrow ] ) ;
柱 ( dtsplitmeas ,烧焦 ( COLS [ 一世 ] ) ) << 设置属性 ( “控制限制” , EVAL ( controllimits ) ) ;
) ;
) ;