<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />jmpのスクリプティングにとって本当に新しいこと。これについて質問があります。これは私が書いたスクリプトです。私がやろうとしていることは、私は2つのテーブルを持っているということです、テーブル1は、例えば、各テストの制限が含まれています。
表1
| テスト | 下限 | 上限 |
|---|
| テスト1 | 3 | 10年 |
| テスト2 | 3.4 | 12年 |
| テスト3 | 5 | 12年 |
そしてもう一方の表(数千カラム)にはテスト結果が含まれています。
表2
| テスト1 | テスト2 | テスト3 |
|---|
| 5 | 6 | 8 |
| 5 | 6.1 | 8.11 |
| 5.2 | 6.23 | 8.12 |
そして、私がやろうとしていることは、いくつかの選択されたテスト(4または5)に対して2番目のテーブルの変動図をプロットすることです。限定。今、私は自分のスクリプトを完成させる方法がわからないこの状況で立ち往生しています。現在のところこのように見えます、私は参照線を固定点でプロットするために得ることができます、例えば "1"。しかし、私ができることは、ユーザーがプロットすることに決めたテストを抽出し、最初のデータテーブルから制限を抽出して、その制限を参照線としてプロットすることです。
変動図のユーザーが選択したパラメーター(XとY)を抽出し、その限界を検索して基準線をプロットする方法はありますか?今のところ、私のコードはこんな感じです
dt_data1 =データテーブル(1)。// Limitsテーブル
dt_data2 =データテーブル(2)。//実際のデータテーブル
// GUIウィンドウの起動
// ------------------------------------------------ --------------------------------------------------
ColSel =フィルタColセレクタ(データテーブル(dt_data1)、250、10、ColumnToPlot = ColSel << Get Get);
ColSel << Set Max Selected(2); //最大選択列数は1です
win =新しいウィンドウ( "テスト"、
<<モーダル、
テキストボックス( "変動グラフをプロットするための列")、
コルセル、
go =ボタンボックス( "OK"、
ColumnToPlot = ColSel <<選択されたアイテム
;
;
// ------------------------------------------------ -----------------------------------------------
// GUIウィンドウの終了
待ちます(1)。
現在のデータテーブル(dt_data2)。
Colnames = dt_data2 <<列名を取得(数値、文字列)。
LowerLimit = colnames [2];
UpperLimit = colnames [3];
現在のデータテーブル(dt_data1)。
変動グラフ(
最大イター数(100)
コンバージョン制限(0.00000001)、
数の横座標(128)、
数関数の評価(65536)
分析タイプ( "最良の分析の選択(EMS REMLベイジアン)")、
ジッタしたポイント(1)
ボックスプロットを表示(1)
標準偏差チャート(0)、
範囲バーを表示(1)
SendToReport(
ディスパッチ(
「」、
"2"、
ScaleBox、
{Ref Line(0、"単色"、"黒"、""、1)を追加、
Ref Line(1、"Solid"、"Blue"、""、2)を追加します。// 1をインポートした値で置き換えます
)
)
;
列のプロパティを使用して制限をそのように設定できることを指摘していただきありがとうございます。
限度を測定データテーブルの各列のスペック限度列プロパティに限度データテーブルから移動すると、変動グラフプラットフォームは自動的に限度を表示します。
これは、「管理制限のインポート」という投稿された質問に答えるために最近書いたスクリプトです。 このスクリプトは、限界データテーブルから読み取り、それを測定データテーブルに移動します。
//このスクリプトを実行する前に、測定と制限データテーブルを開きます。
//返信に添付した2つのファイルを使用している場合は、dtmeas =と
//以下のdtlim =ステートメントは正しいデータテーブルを指しています。 しかし
//異なるデータテーブルを使用している場合は、データテーブル名を変更する必要があります
ここにデフォルトの名前 ( 1 ) ;
dtmeas = データ表 ( 「測定表」 ) ;
dtlim = データ表 ( 「制限表」 ) ;
//各グループが異なるグループになるようにグレードコードに基づいてデータテーブルを分割する
//列
dtsplitmeas = dtmeas << スプリット ( 分割する ( : GRDBWT ) 、スプリット ( : ACC坪量 ) ) ;
//分割データテーブルから列名を取得します。これは実際には異なります
//グレードコード
コルズ = dtsplitmeas << 列名を取得する ( ひも ) ;
//分割データテーブルをループし、その列の値を
// dtlimデータテーブル 仕様制限と管理制限の設定
にとって ( 私 = 1 、私 <= Nコルズ ( dtsplitmeas ) 、私 ++、
肢体 = やってみる ( ( dtlim << 行を取得する ( dtlim : グレードコード == コルズ [ 私 ] ))[ 1 ] 、 。 ) ;
もし ( 不足している ( limRow ) == 0 、
スペック = { LSL ( 。 ) 、 USL ( 。 ) 、ターゲット ( 。 ) 、制限を表示 ( 1 )} ;
スペック [ "LSL" ] = dtlim : 低 [ 肢体 ] ;
スペック [ "ターゲット" ] = dtlim : TARG [ 肢体 ] ;
スペック [ 「USL」 ] = dtlim : 高い [ 肢体 ] ;
カラム ( dtsplitmeas 、チャー ( コルズ [ 私 ] ) ) << プロパティを設定する ( 「スペック制限」 、評価 ( スペック ) ) ;
管理限界 = { Xバー ( 平均 ( ある ) 、 LCL ( b ) 、 UCL ( c ) )} ;
代用 ( 管理限界 、経験値 ( ある ) 、 dtlim : LWarn [ 肢体 ] ) ;
代用 ( 管理限界 、経験値 ( c ) 、 dtlim : 警告する [ 肢体 ] ) ;
代用 ( 管理限界 、経験値 ( b ) 、 dtlim : ターグ [ 肢体 ] ) ;
カラム ( dtsplitmeas 、チャー ( コルズ [ 私 ] ) ) << プロパティを設定する ( 「管理限界」 、評価 ( 管理限界 ) ) ;
) ;
) ;