Select Where () ステートメントの比較こんにちは、みんな、
このウェブサイトを徹底的に検索したので、簡単な解決策だと思いますが、何らかの理由で機能させることができず、2日間立ち往生しています。
以下のスクリプトでは、特定の列のどの部分を選択するかをユーザーに尋ねます。たとえば、列の値が 8 であるとします (列には 1 から 8 までの値を含めることができます)。この列のこの値を持つ行を選択し、データテーブルのこのサブセットのみを使用して特定のグラフを作成する新しい dt を作成したいと考えています。
テキスト ボックスに入力した番号が付いた名前のサブセット テーブルが作成されます。入力した数字が表示されます。つまり、XNo = "8";ただし、Select where ( Column == XNO) は機能しません。エラーは発生しません。特定の行が選択されない、またはグラフが作成されないだけです。参照するデータテーブルと同じ名前の新しいデータテーブルが作成されます。
「Select where (column == "8")」または「Select where(column == 8)」と入力すると機能します。この 8 を可変にして、オペレーターが自分で入力できるようにしたいだけです。
dt = 現在のデータテーブル();
Col = 列(dt,"MILL_X");
Col_name_list = dt << 列名を取得( string );
rdata = New Window( "どの部分を確認しますか?",
<
<
X = テキスト編集ボックス(「どの部分?」)、
テキストボックス(「OKをクリックして保存」)、
ボタンボックス(「OK」、
XNo = X << テキストを取得)、
ボタンボックス (「キャンセル」);
);
Show( XNo ); // 指定された文字列を表示します。つまり、8 を入力すると表示されます --> XNo = "8";
//列の値に基づいて必要な行を選択
dt << 行選択(
Select where( :MILL_X == XNo ), // <--- これは機能しません。列から選択された値の代わりに dt 全体が選択されます。 :MILL_X == 8 と入力すると機能します。ただし8番に限る。
Dialog( Edit( Equal( Source Column(col) ) )、ダイアログを開いたままにする( 0 ) )
);
Subset( (選択された行), 出力テーブル名( "X " || Char(ColletNo) || "検査" ) );
// 選択した行を使用して目的のグラフを作成します
分布(
継続的配信(
列( :"Y (μm)"n )、
プロセス能力( LSL( -15 )、ターゲット( 0 )、USL( 15 ) )
)
);
// オプションで、ここでグラフをさらにカスタマイズできます
// たとえば、追加の要素や書式設定オプションの追加など
dt << 選択をクリア;
dt << 列の選択をクリア;
自動化とスクリプト作成データアクセス品質およびプロセスエンジニアリング Re: Select Where() ステートメントの比較XNo を数値に変換してみてください (Num(XNo) または数値編集ボックスを使用します。また、列参照を少し変更する必要がある場合もあります (比較に [] を追加します)。以下はビッグ クラス テーブルを使用した例です。12 ~ 17 から 17 までの値を使用します。テスト
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
col = Column(dt, "age");
col_name_list = dt << get column names(string);
rdata = New Window( "Which part do you want to check?",
<<MODAL> XNo = "8"; //列 dt の値に基づいて目的の行を選択 << Select Where(col[] == Num(XNo)); dt_subset = dt << サブセット(選択された行); dt << 選択をクリア;</MODAL>
特定の値が許可されている場合は、ユーザーが特定の値のみを選択できるようにセレクターを変更することもできますが、まずこのバージョンが動作するようにしてから、それらのオプションを検討してください。
Re: Select Where() ステートメントの比較これは具体的な解決策ではありませんが、列が序数である必要がある(または少なくとも連続的でない)ことがわかりました。ここで、年齢列だけではなく、他のすべての列を取得できるように作成する必要があります。正しい修正ができたら更新しますが、ありがとうございます。それが機能しないのはばかげたものであることはわかっていました。
Re: Select Where() ステートメントの比較以前に Num() ステートメントとcol[] ステートメントを試したことがあるため、なぜ以前に機能しなかったのかわかりません。同時に実行しなかったのかもしれませんが、わかりません。何度も繰り返し試しましたが、現在は機能しています。カラムを連続に変更する必要さえありません。あなたのスクリプトにあるこれまで試していない唯一のことは、「Names Default to here(1);」です。ライン。