特定のパラメータのデータが欠落しているバッチを管理図に表示しないように、JSL を使用して設定します。話題としては。
通常、JSL では、次のように管理図上にポイントを表示するバッチ (特定の列で表される) を示します。
Local Data Filter(
Close Outline( 1 ),
Add Filter(
columns( :Batch ),
Where(
:Batch == {"01/10/2022", "01/11/2022", "01/12/2022", "01/13/2022"}
),
Display( :Batch, N Items( 15 ), Find( Set Text( "" ) ) )
)
), しかし、特定のパラメータに対して N/A (データ テーブルの空のフィールド) があるバッチを除くすべてのバッチを考慮するように要求するにはどうすればよいでしょうか?
JMPのバージョン:16。
自動化とスクリプト作成Re: JSLを使用して、特定のパラメータのデータが欠落しているバッチを管理図に表示しないように設定します。1 つの方法は、連想配列を使用してすべての一意の値を取得し、欠損していない値だけを保持することです。 次に、これをリストとしてローカル データ フィルターに渡すことができます。 以下の例:
Names Default To Here (1);
//open file and delete a few data points
dt = open ("$SAMPLE_DATA/Abrasion.jmp");
for each ({i}, 6::9,
:Date[i] = .
);
//get non-missing
lstdates = matrix (Associative Array (:Date) << Get Keys);
lstdates = as list(lstdates[loc(!Is Missing(lstdates))]);
//launch cc
cc = Control Chart Builder( Variables( Y( :Abrasion ) ), Show Control Panel( 0 ), );
//launch data filter
ldf = cc << Local Data Filter(
Add Filter(
columns( :Date ),
Where( :Date == lstdates ),
Display( :Date, N Items( 5 ) )
)
);
/*JMP STATISTICAL DISCOVERY LLC (“JMP”) PERMITS THE USE OF THIS COMPUTER SOFTWARE CODE (“CODE”) ON AN AS-IS BASIS AND AUTHORIZES YOU TO USE THE CODE SUBJECT TO THE TERMS LISTED HEREIN. BY USING THE CODE, YOU AGREE TO THESE TERMS. YOUR USE OF THE CODE IS AT YOUR OWN RISK. JMP MAKES NO REPRESENTATION OR WARRANTY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRIGEMENT, AND TITLE, WITH RESPECT TO THE CODE.
You may use the Code solely as part of a software product you currently have licensed from JMP, JMP’s parent company SAS Institute Inc. (“SAS”), or one of JMP’s or SAS’s subsidiaries or authorized agents (the “Software”), and not for any other purpose. The Code is designed to add functionality to the Software but has not necessarily been tested. Accordingly, JMP makes no representation or warranty that the Code will operate error-free. JMP is under no obligation to maintain, support, or continue to distribute the Code.
Neither JMP nor its licensors shall be liable to you or any third-party for any general, special, direct, indirect, consequential, incidental, or other damages whatsoever arising out of or related to your use or inability to use the Code, even if JMP has been advised of the possibility of such damages. Except as otherwise provided above, the Code is governed by the same agreement that governs the Software. If you do not have an existing agreement with JMP or SAS governing the Software, you may not use the Code.
JMP and all other JMP Statistical Discovery LLC product or service names are registered trademarks or trademarks of JMP Statistical Discovery LLC in the USA and other countries. ® indicates USA registration. Other brand and product names are registered trademarks or trademarks of their respective companies.
*/Re: JSLを使用して、特定のパラメータのデータが欠落しているバッチを管理図に表示しないように設定します。私はプラットフォーム内で変換列を使用することの大ファンです。以下のスクリプトの管理図部分をどのように作成したかを示します。
- すべてのデータを使用して管理図を作成する
- コントロールパネルで「日付」を右クリックし、「数式」を選択します。
- Is Missing 関数と Not 関数を追加して、Date 列が欠落していない場合に数式が true になるようにし、ダイアログを閉じます。
- 新しい列を右クリックし、名前を「HasDate」に変更します。
- 新しい列の横にある青い三角形を右クリックし、それを公称データ型に変更します。
- ローカル データ フィルターを追加すると、変換された列が使用可能な列のリストに自動的に表示されます。
取得するものは次のとおりです。

それを再作成するスクリプトは次のとおりです。
Names Default To Here (1);
dt = open ("$SAMPLE_DATA/Abrasion.jmp");
dt << Control Chart Builder(
Transform Column( "HasDate", Nominal, Formula( !Is Missing( :Date ) ) ),
Variables( Y( :Abrasion ) ),
Show Control Panel( 0 ),
Local Data Filter( Add Filter( columns( :HasDate ), Where( :HasDate == 1 ) ) )
);
それがビジュアルの作成や分析の実行に役立つ列であると判断した後、その列を右クリックしてデータ テーブルに追加できます。
Re: JSLを使用して、特定のパラメータのデータが欠落しているバッチを管理図に表示しないように設定します。非常に素晴らしい、 @ih !
Re: JSLを使用して、特定のパラメータのデータが欠落しているバッチを管理図に表示しないように設定します。ありがとう。 あなたの答えは私が望むものに近いと思います。コードを少し変更するだけで、望ましい結果を達成できると思います。 残念ながら、私はまだ JMP SL を使い始めたばかりです。私が達成したいことを完全に実装するコードを入手するのを手伝っていただければ幸いです。そのため、私は私の問題をよりよく説明するよう努めます。
ループを使用して、データ テーブルのさまざまなパラメーターに対して管理図を実行したいと言う必要があります。前回のヒントを使用して、i 番目の列をフィルター対象とするようにコードを変更する方法に問題があります。 :Column(i) を試してみましたが、それは方法ではないと思います...
私が言いたいことを説明しようとしたコードの一部を共有します。
For( i = 2, i <= 5, i++,
dt << Control Chart Builder(
lstdates = Matrix( Associative Array( :Column( i ) ) << Get Keys );
lstdates = As List( lstdates[Loc( !Is Missing( lstdates ) )] );
Show Two Shewhart Charts( 0 );,
Sort by Row Order( 1 ),
Include Missing Categories( 0 ),
Show Excluded Region( 0 ), //sprawdź które to które
Show Limit Summaries( 0 ),
Variables( Subgroup( :Batch ), Y( :Column( i ) ) ),
Chart(
Points( Statistic( "Individual" ) ),
Limits( Sigma( "Levey Jennings" ) ),
Warnings( Test 1( 1 ), Test 2( 1 ), Test 3( 1 ), Test 4( 1 ) )
),
ldf = cc << Local Data Filter(
Add Filter( columns( :Column( i ) ), Where( :Column( i ) == lstdates ), Display( :Column( i ), N Items( 5 ) ) )
),
SendToReport(
Dispatch( {}, "graph display 1 title", TextEditBox, {Set Text( "Levey Jennings chart of " || Nazwy[i] )} ),
Dispatch( {}, "Subgroup display 1 title", TextEditBox, {Set Text( "Batch numer" )} )
)
);
)
);
Re: JSLを使用して、特定のパラメータのデータが欠落しているバッチを管理図に表示しないように設定します。データ テーブル内のすべての連続パラメーターに対してループ "for" を使用する場合、代わりに :Date を何を書けばよいかわかりませんか?
Re: JSLを使用して、特定のパラメータのデータが欠落しているバッチを管理図に表示しないように設定します。このサンプルでは、すべての連続列をリストに取得し、それらの列をループする方法を示します。 ちなみに、複数の列を検討している場合、モデル駆動型多変量管理図またはプロセス スクリーニング プラットフォームのいずれかを検討したことがありますか? どちらも、複数の出力の管理図を合理化することに優れています。
Names Default To Here( 1 );
//open sample data table
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
//get all numeric continuous colums, return list as strings
lstcols = dt << Get Column Names( Numeric, Continuous, String );
//run an analysis for each column in the list
For Each( {i}, lstcols,
dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :age ), Y( Column( i ) ) ), //Use each column
Elements( Points( X, Y, Legend( 3 ) ) )
)
);
/*JMP STATISTICAL DISCOVERY LLC (“JMP”) PERMITS THE USE OF THIS COMPUTER SOFTWARE CODE (“CODE”) ON AN AS-IS BASIS AND AUTHORIZES YOU TO USE THE CODE SUBJECT TO THE TERMS LISTED HEREIN. BY USING THE CODE, YOU AGREE TO THESE TERMS. YOUR USE OF THE CODE IS AT YOUR OWN RISK. JMP MAKES NO REPRESENTATION OR WARRANTY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRIGEMENT, AND TITLE, WITH RESPECT TO THE CODE.
You may use the Code solely as part of a software product you currently have licensed from JMP, JMP’s parent company SAS Institute Inc. (“SAS”), or one of JMP’s or SAS’s subsidiaries or authorized agents (the “Software”), and not for any other purpose. The Code is designed to add functionality to the Software but has not necessarily been tested. Accordingly, JMP makes no representation or warranty that the Code will operate error-free. JMP is under no obligation to maintain, support, or continue to distribute the Code.
Neither JMP nor its licensors shall be liable to you or any third-party for any general, special, direct, indirect, consequential, incidental, or other damages whatsoever arising out of or related to your use or inability to use the Code, even if JMP has been advised of the possibility of such damages. Except as otherwise provided above, the Code is governed by the same agreement that governs the Software. If you do not have an existing agreement with JMP or SAS governing the Software, you may not use the Code.
JMP and all other JMP Statistical Discovery LLC product or service names are registered trademarks or trademarks of JMP Statistical Discovery LLC in the USA and other countries. ® indicates USA registration. Other brand and product names are registered trademarks or trademarks of their respective companies.
*/Re: JSLを使用して、特定のパラメータのデータが欠落しているバッチを管理図に表示しないように設定します。私が理解できないのは、スクリプトでは指定された列をその名前(たとえば「:name」)で参照することが機能するのに、「column(i)」では機能しない理由だと思います(コードではそれがわかっています)上記では、column(i) の代わりに :column(i ) と書いて間違いを犯しましたが、修正しても何も変わりませんでした...)