条件が満たされた後にJSLコマンドを実行するにはどうすればよいですかJMPコミュニティユーザーの皆様
私は JMP の初心者ですが、問題に直面しています。 皆さんのご協力が得られれば幸いです。
データテーブルがあります。 特定の値の列のみに対してグラフビルダーを実行したいと考えています。
たとえば、AB766 と RSDF の列「monitor_set_name」と「measurement_set_name」に属するセル、および「AB766」と「RSDF」に対応する他の列と行を選択したいと考えています。

次に、必要な情報を含むテーブルに対して「グラフビルダー」を実行したいと思います。
「monitor_set_name」と「measurement_set_name」に「AB766」と「RSDF」が含まれていない場合は、「グラフ ビルダー」の実行をスキップします。
アドバイスをいただけますか?
心から、
マスカスタマイゼーションRe: 条件が満たされた後に JSL コマンドを実行するにはどうすればよいですか親愛なるブレイディさん、
ご支援ありがとうございます。 あなたの提案を後ほどスクリプトに適用します。
心から、
Re: 条件が満たされた後に JSL コマンドを実行するにはどうすればよいですか試してみます どうもありがとうございました。
ちなみに、フォーラムで提案されている方法を1つ見つけましたが、それは私にとってはうまくいきました
CHECK_U2_CT_HDF = Contains(
df << get column names( string ),
"centerline@u2_holdforceduration_2"
);
If( CHECK_U2_CT_HDF == 0,
df << New Column( "centerline@u2_holdforceduration_2",
Numeric,
Continuous,
Format( "Best", 10 )
)
);
皆様の力強いご支援に感謝いたします!
Re: 条件が満たされた後に JSL コマンドを実行するにはどうすればよいですかTry() 関数は、これに対処する 1 つの方法です。
U1_UCL_HDF =Try( Column( dt, "up_control_lmt@u1_holdforceduration_2" )[1],.);
if(isMissing(:U1_UCL_HDF),
add and populate the new column
);
列と行が存在する場合、U1_UCL_HDF は有効な値を持ちますが、試行が失敗すると欠損値が返されます。したがって、フローは次のようになります
Re: 条件が満たされた後に JSL コマンドを実行するにはどうすればよいですか親愛なるテキネルソン様
参照された列が見つからない場合、JMP は実行を停止します --> 正解です。
私の質問を明確にしたいと思います。 問題は、会社のシステムからデータを取得しようとしているということです。 製品カテゴリが異なるため、データ テーブルも異なります。
例えば:
製品 A: 列が含まれます: up_control_lmt@u1_holdforceduration_2とup_control_lmt@u2_holdforceduration_2
製品 B: 列のみが含まれます: up_control_lmt@u1_holdforceduration_2
両方の製品に適用できるスクリプトを構築したいので。
あなたの提案では、製品Bのデータテーブルに列が含まれていない場合、製品Bにもう1つの列を追加する必要があります。 up_control_lmt@u2_holdforceduration_2。
したがって、製品Bのデータテーブルに次のものが含まれているかどうかを確認するために使用できる関数は次のとおりです。 up_control_lmt@u2_holdforceduration_2。 --> データテーブルに次のものが含まれる場合: up_control_lmt@u2_holdforceduration_2。 、 データテーブルに新しい列を追加します。
私の質問を理解していただけたでしょうか?
心から、
Re: 条件が満たされた後に JSL コマンドを実行するにはどうすればよいですか私は混乱しています。指定した列のセル 1 から値を読み取りたいが、そのような列は存在しないことを示しています。
参照される列が見つからない場合、JMP は実行を停止します。したがって、エラーが見つかると処理は続行されません。
そのような列がなく、それを取得したい場合は、データ テーブルに列を追加し、セル 1 に必要な値を入力する必要があります。それが解決策です....しかし、私は質問を本当に理解していないと思います。
Re: 条件が満たされた後に JSL コマンドを実行するにはどうすればよいですか親愛なるテキネルソン様
できます。 ご提案ありがとうございます。 勉強のためにスクリプト ガイドを参照します。
一方で、さらに質問があります。
グラフ化に変数を使用したいので、列のセルから値を抽出し、その値を変数に代入したいと考えています。
ただし、テーブルに列が含まれていない場合: lo_control_lmt@u2_holdforceduration_2また : up_control_lmt@u2_holdforceduration_2 、私のスクリプトではグラフが表示されません
以下のスクリプトの 2 行を削除すると、スクリプトにグラフが表示されます。
U2_UCL_HDF = 列(dt,"up_control_lmt@u2_holdforceduration_2")[1];
U2_LCL_HDF = 列(dt,"lo_control_lmt@u2_holdforceduration_2")[1];
この場合の解決策はありますか。 心から。
私のスクリプト:
U1_UCL_HDF = Column( dt, "up_control_lmt@u1_holdforceduration_2" )[1]; //extract value from cell
U1_LCL_HDF = Column( dt, "lo_control_lmt@u1_holdforceduration_2" )[1]; //extract value from cell
U2_UCL_HDF = Column( dt, "up_control_lmt@u2_holdforceduration_2" )[1]; //extract value from cell
U2_LCL_HDF = Column( dt, "lo_control_lmt@u2_holdforceduration_2" )[1]; // extract value from cell
NW = New Window( "KPP summarize",
Variability Chart(
Y( :HOLDFORCEDURATION_2 ),
X( :COMPLEVEL_1, :LINK_ID, :TEST_OR_BOND_HEAD_ID, :LOT, :BONDSTAGE, :CARRIER_X ),
Max Iter( 100 ),
Conv Limit( 0.00000001 ),
Number Integration Abscissas( 128 ),
Number Function Evals( 65536 ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Connect Cell Means( 1 ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
AIAG Labels( 0 ),
SendToReport(
Dispatch(
{"Variability Chart for HOLDFORCEDURATION_2"},
"2",
ScaleBox,
{Min( 332 ), Max( 641 ), Inc( 50 ), Minor Ticks( 1 ),
Add Ref Line( 0, "Dotted", "Medium Light Gray", "", 1 ),
Add Ref Line( U1_UCL_HDF, "Solid", "Red", "UCL_U1", 2 ),
Add Ref Line( U1_LCL_HDF, "Solid", "Red", "LCL_U1", 2 ), // put the value in here extract
Add Ref Line( U1_CT_HDF, "DashDot", "Red", "CL_U1", 2 ), // put the value in here extract
Add Ref Line( U2_UCL_HDF, "Solid", "BlueCyan", "UCL_U2", 2 ), // put the value in here extract
Add Ref Line( U2_LCL_HDF, "Solid", "BlueCyan", "LCL_U2", 2 ), // put the value in here extract
Add Ref Line( U2_CT_HDF, "DashDot", "BlueCyan", "CL_U2", 2 )} // put the value in here extract
)
)
)
);Re: 条件が満たされた後に JSL コマンドを実行するにはどうすればよいですか変数「df」はサブセット化されたデータテーブルを指します。データ テーブルからレポートを作成しても、そのレポートはデータ テーブルの一部にはなりません。それ自体が実体です。したがって、作成されたレポートにアクセスする最も簡単な方法は、それを指す変数を指定することです。以下のスクリプトの変更でこれを実行しました。
gb = df << Graph Builder(
変数「gb」はグラフ ビルダー オブジェクトを指します。コードの後半で、グラフ ビルダー プラットフォームによって生成されたレポートに「画像の保存」メッセージが適用されます。
report(gb) << save picture( "C:\Users\lamquocb\image.jpg" );
変更されたスクリプトは次のとおりです
names default to here( 1 );
dt = Open( "raw_data.csv", "invisible" );
dt << Select Where(
:monitor_set_name == "CSP_FAST_TC" & :spc_chart_subset == "STDDEV" & :measurement_set_name == "U1_X"
);
df = dt << Subset( Selected Rows( 1 ), Selected columns only( 0 ), "invisible" );
gb = df << Graph Builder(
Size( 1056, 675 ),
Show Control Panel( 0 ),
Automatic Recalc( 0 ),
Variables(
X( :spc_txn_date ),
Y( :chart_value ),
Y( :lo_control_lmt, Position( 1 ) ),
Y( :up_control_lmt, Position( 1 ) ),
Y( :centerline, Position( 1 ) ),
Group Y( :monitor_set_name ),
Group Y( :measurement_set_name ),
Group Y( :spc_chart_subset ),
Wrap( :spc_entity )
),
Elements(
Line( X, Y( 1 ), Y( 2 ), Y( 3 ), Y( 4 ), Legend( 25 ), Connection( "Curve" ), Smoothness( 0.5 ) )
),
SendToReport(
Dispatch( {}, "spc_txn_date", ScaleBox, {Label Row( Automatic Font Size( 0 ) )} ),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
25,
Properties( 2, {Line Color( 19 )} ),
Properties( 3, {Line Color( 0 ), Line Style( "Dotted" )} )
)}
)
)
);
report(gb) << save picture( "C:\Users\lamquocb\image.jpg" );
時間をかけてスクリプト ガイドを読むことを強くお勧めします。このガイドは、JMP ドキュメント ライブラリの [ヘルプ] プルダウン メニューにあります。
Re: 条件が満たされた後に JSL コマンドを実行するにはどうすればよいですか親愛なるテキネルソン様
できます。 とても感謝しています。
私はあなたのガイダンスに従い、それを自分自身に適用しようとします
dt = Open( "raw_data.csv", "invisible" );
dt << Select Where(
:monitor_set_name == "CSP_FAST_TC" & :spc_chart_subset == "STDDEV" & :measurement_set_name == "U1_X"
);
df = dt << Subset( Selected Rows( 1 ), Selected columns only( 0 ), "invisible" );
df << Graph Builder(
Size( 1056, 675 ),
Show Control Panel( 0 ),
Automatic Recalc( 0 ),
Variables(
X( :spc_txn_date ),
Y( :chart_value ),
Y( :lo_control_lmt, Position( 1 ) ),
Y( :up_control_lmt, Position( 1 ) ),
Y( :centerline, Position( 1 ) ),
Group Y( :monitor_set_name ),
Group Y( :measurement_set_name ),
Group Y( :spc_chart_subset ),
Wrap( :spc_entity )
),
Elements(
Line( X, Y( 1 ), Y( 2 ), Y( 3 ), Y( 4 ), Legend( 25 ), Connection( "Curve" ), Smoothness( 0.5 ) )
),
SendToReport(
Dispatch( {}, "spc_txn_date", ScaleBox, {Label Row( Automatic Font Size( 0 ) )} ),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
25,
Properties( 2, {Line Color( 19 )} ),
Properties( 3, {Line Color( 0 ), Line Style( "Dotted" )} )
)}
)
)
);
df << save picture( "C:\Users\lamquocb\image.jpg" );
ただし、画像を保存できないという別の問題が発生しました - df のグラフビルダー。
写真を保存したい場所にアクセスしようとしましたが、写真が見つかりませんでした。
何かアドバイスはありますか?
心から、
Re: 条件が満たされた後に JSL コマンドを実行するにはどうすればよいですかやあ、
JMP を初めて使用する場合は、ローカル データ フィルターと列スイッチャーを必ず確認してください。 ここではローカル データ フィルターが役立つ可能性があります... 何ができるかを知っていただくために、例に列スイッチャーを含めました。
メニュー項目をクリックするだけで、グラフを考慮したいデータに制限できます。 コーディングは必要なく、使いやすく、誰でも使用できます。
ローカル データ フィルターを取得するには、グラフ ビルダーの赤い三角メニューから [ローカル データ フィルターの追加] を選択します。
列スイッチャーを取得するには、メイン メニューから [やり直し] > [列スイッチャー] を選択します。 また、交換する列と、回転させたい列を選択する必要があります。 このセットには、交換する列を必ず含めてください。 すべての列は同じデータ型である必要があります。
以下のスクリプトを実行して、これらの動作を垣間見てみましょう。
乾杯、
ブレイディ

Names Default To Here(1);
dt = open ("$Sample_Data\Car Physical Data.jmp");
Graph Builder(
Size( 526, 448 ),
Show Control Panel( 0 ),
Variables( X( :Country ), Y( :Gas Tank Size ) ),
Elements( Box Plot( X, Y, Legend( 8 ) ), Points( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Show Histograms and Bars( 0 ),
Add Filter(
columns( :Type ),
Where( :Type == "Compact" ),
Display( :Type, N Items( 5 ) )
)
),
Column Switcher(
:Gas Tank Size,
{:Weight, :Turning Circle, :Displacement, :Horsepower, :Gas Tank Size}
)
);
Re: 条件が満たされた後に JSL コマンドを実行するにはどうすればよいですか以下の JSL を生成するには、手順を対話的に実行し、ログからコードを取得してスクリプト ウィンドウに貼り付けました。
names default to here(1);
// Open Data Table: big class.jmp
// → Data Table( "big class" )
Open( "$SAMPLE_DATA/big class.jmp" );
// Select matching cells
Data Table( "big class" ) << Select Where( :age == 12 & :sex == "F" );
// Subset data table
// → Data Table( "Subset of big class" )
Data Table( "big class" ) << Subset( Selected Rows( 1 ), Selected columns only( 0 ) );
// Report snapshot: Subset of big class - Graph Builder
Data Table( "Subset of big class" ) << Graph Builder(
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
);
// Invert current selection
Data Table( "big class" ) << Invert Row Selection;
// Subset data table
// → Data Table( "Subset of big class 2" )
Data Table( "big class" ) << Subset( Selected Rows( 1 ), Selected columns only( 0 ) );
// Report snapshot: Subset of big class 2 - Graph Builder
Data Table( "Subset of big class 2" ) <<
Graph Builder(
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 6 ) ), Smoother( X, Y, Legend( 7 ) ) )
);