列に格納された値を使用して列の仕様制限を設定するこんにちは、みんな、
csv ファイルを JMP にインポートして、データ テーブル (dt0 として割り当て) と仕様テーブル (dt1 として割り当て) をそれぞれ取得しました。 仕様テーブル (dt0) で仕様を取得し、データ テーブル (dt0) で列の仕様制限を設定します。
仕様を正常に設定できないことがわかった問題:

ここに私のコードがあります:
名前のデフォルトはここ( 1 );
ファイル =ファイルを選択(
「CSVファイルを選択」 、
「$ダウンロード」 、
{ "JMP ファイル|jmp;jsl;jrn" 、 "すべてのファイル|*" }、
1 、
0 、
""
);
dt0 =開ける(
ファイル、
インポート設定(
行末(CRLF、CR、LF)、
フィールドの終わり( カンマ、CSV( 0 ) ) 、
引用符を取り除く( 1 )、
引用符としてアポストロフィを使用します( 0 )、
地域設定を使用する( 0 )、
ファイル全体をスキャン( 1 )、
空の列を数値として扱います( 0 )、
CompressNumericColumns( 0 )、
CompressCharacterColumns( 0 )、
CompressAllowListCheck( 0 )、
ラベル( 1 )、
列名の開始( 2 )、
データ開始( 8 )、
読む行数( "全て" )、
年ルール( 「20xx」 )
)
);
dt1 =開ける(
ファイル、
インポート設定(
行末(CRLF、CR、LF)、
フィールドの終わり( カンマ、CSV( 0 ) ) 、
引用符を取り除く( 1 )、
引用符としてアポストロフィを使用します( 0 )、
地域設定を使用する( 0 )、
ファイル全体をスキャン( 1 )、
空の列を数値として扱います( 0 )、
CompressNumericColumns( 0 )、
CompressCharacterColumns( 0 )、
CompressAllowListCheck( 0 )、
ラベル( 1 )、
列名の開始( 2 )、
データ開始( 5 )、
読む行数( 2 )、
年ルール( 「20xx」 )
)
);
ために(私= 13 , i<= N列(dt0)、i++、
桁(dt0,i)<<データ・タイプ(数値);
桁(dt0,i)<<モデリングの種類( 「連続」 );
);
ために(私= 13 , i<= N列(dt1)、i++、
桁(dt1,i)<<データ・タイプ(数値);
桁(dt1,i)<<モデリングの種類( 「連続」 );
);
ために(私= 13 , i<= N列(dt1)、i++、
tempUSL=列の保存値(dt1, i, 1 ); // dt1 スペック テーブルのスペックを 'tempUSL' と 'tempLSL' に割り当てます
tempLSL=列の保存値(dt1, i, 2 );
評価(
評価式(
桁( dt0,i ) <<プロパティの設定(
「仕様限界」 、
{LSL(式( tempLSL ) ), USL(式( tempUSL ) )、制限の表示( 1 )}
)
)
);
);
この問題に対処するためのアドバイスはありますか? ありがとう
Re: 列に格納された値を使用して列の仕様制限を設定するとても良いアドバイス、本当に助かります。 どうもありがとう、バイロン!
Re: 列に格納された値を使用して列の仕様制限を設定する私はあなたが何をしているのか見て、あなたのコードはとても素敵だと言わざるを得ません. また、非常に複雑です。
JMP に既に存在するスクリプト プラットフォームで同じことを実現する方法は他にもいくつかあります。
以下にいくつかの例を示します。
これはプロセススクリーニングプラットフォームを使用しています
Names Default To Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Cities.jmp" );
dt2 = Open( "$SAMPLE_DATA/CitySpecLimits.jmp" );
dt1 << Process Screening(
Y( :OZONE, :CO, :SO2, :NO ),
Use Limits Table(
1,
dt2,
Process Variables( :Column 1 ),
LSL( :_LSL ),
USL( :_USL ),
Target( :_Target ),
Go
)
);
これはプロセス機能プラットフォームを使用します
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = dt << Process Capability(
Process Variables( :OZONE, :CO, :SO2, :NO ),
Spec Limits(
Import Spec Limits(
"$SAMPLE_DATA/CitySpecLimits.jmp"
)
)
);
この例では、ユーザーが仕様制限テーブルを選択できるようにするダイアログが開きます。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
obj = dt << Manage Spec Limits(
Y( dt << Get Column Group( "Processes" ) )
);
プラットフォームの機能を利用するこの基本的なコードは、保守もはるかに簡単です。
これが役に立ったことを願って、
乾杯、
B
Re: 列に格納された値を使用して列の仕様制限を設定するこんにちは、みんな、
これらのコードを使用して解決策を見つけました:
Eval(
Eval Expr(
tempUSL=Col Stored Value(dt1, Expr(i), 1)
)
);
Eval(
Eval Expr(
tempLSL=Col Stored Value(dt1, Expr(i), 2)
)
);
ありがとう
Re: 列に格納された値を使用して列の仕様制限を設定する「tempUSL」と「tempLSL」に番号を直接割り当てると、機能する可能性があります。
しかし、スペック テーブルからスペック制限を割り当てる必要があります。
Names Default To Here( 1 );
Files = Pick File(
"Select CSV File",
"$Downloads",
{"JMP Files|jmp;jsl;jrn", "All Files|*"},
1,
0,
""
);
dt0 = Open(
Files,
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 2 ),
Data Starts( 8 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
dt1 = Open(
Files,
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 2 ),
Data Starts( 5 ),
Lines To Read( 2 ),
Year Rule( "20xx" )
)
);
For(i=13, i<=N Cols(dt0), i++,
Column(dt0,i)<<DATA type=""></DATA>