<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 ) ) ;
) ;
) ;