列レベルに基づいて大規模なデータ テーブルをクエリし、名前にそのレベルが含まれる列を返すにはどうすればよいでしょうか。私たちは、数十の生産施設に展開する(最終的には JMP Live に公開する)品質監視アプリケーションを構築したいと考えています。
各施設には、非常に縦長で幅の広いデータテーブル(dtBigBoy、列数1000未満、行数1万~10万行)があります。このテーブルは、直接クエリできないプロセスデータヒストリアンから更新されます(開始/停止タイムスタンプ間のすべてのデータを取得し、新しいデータを既存のテーブルに連結します)。列の1つである「:Grade」には、その時点で製造されていた製品名(その行)が含まれています。列名は「Grade.Property.#」です。グレードごとに少なくとも1つの「Grade.Property.#」列があります。ユーザーケースの1つとして、ユーザーが特定のグレード(たとえばABCD001)に関心があり、すべてのプロパティデータを確認したい場合があります。
- これを最も効率的に行う方法は何でしょうか?dtBigBoy のローカルデータフィルターを使用して、管理図などを使用して進めていくのでしょうか?
または、:Grade == Chosen.Grade かつ列名に Chosen.Grade が含まれる行のみを選択し、サブセットを作成しますか?
- 列 :Grade を読み取り、:Grade のレベルを選択肢として表示する選択ダイアログボックスを作成するにはどうすればよいですか? ユーザーの選択は変数 Chosen.Grade に保存されます。
- 名前に Chosen.Grade が含まれる列を選択するにはどうすればよいですか?
- 1 ~ 3 を実行するか、JMP テーブル クエリを使用して dtBigBoy から必要な行と列を取得する方が効率的でしょうか。
蒸し暑いマレーシアのクアラルンプールからよろしくお願いします!
自動化とスクリプトデータアクセスRe: 列レベルに基づいて大規模なデータ テーブルをクエリし、名前にそのレベルが含まれる列を返すにはどうすればよいでしょうか?確証はありませんが、ローカルデータフィルターはリンクされたサブセットに似たものになると思います。フィルター処理されたテーブルは、テーブルが開いているかどうかに依存します。1e3行 * 1e5列 * 8バイト/数値は1GB未満で、16GB以上のメモリに収まるはずです。リンクされたサブセットによって必要なメモリが大幅に増加することはありません。
要約プラットフォームをインタラクティブに試して、成績列の要約表を取得できます。スクリプトはそこから入手できます。
サブセットプラットフォームもほぼ同じ方法でスクリプト化できます。サブセットの列を選択するループを記述します。
両方試してみなければ、最後の質問の答えがわかる人はまずいないと思います。どちらでも十分速いと思います。
Re: 列レベルに基づいて大規模なデータ テーブルをクエリし、名前にそのレベルが含まれる列を返すにはどうすればよいでしょうか?グラフの種類にもよりますが、それほど多くのデータが必要になることはないでしょう。1000列すべてを同時にプロットしていますか?ユーザーは一度にこれだけのデータを理解できるでしょうか?まずはローカルデータフィルター(必要な場合は条件付きフィルターを使用)から始め、必要に応じてスクリプトを作成してください(JMPライブではおそらく機能しません)。列スイッチャーだけに頼ることができない場合、列の変更は最も難しい部分になる可能性があります。簡単なサンプルデータと簡単な説明があれば、より参考になるでしょう。
400万行以上のデータを扱う必要があった際、ローカルデータフィルターを使ったスクリプトに頼らざるを得ませんでした。しかし、これは単一のデータを表示する際の遅さではなく、ローカルデータフィルターの更新が不便だったことが主な原因でした。何か変更があるとすぐに更新されてしまい、特定の変更のみを強制的に更新することができません。そこで、変更関数付きのローカルデータフィルターとサマリーテーブルを使用し、それに基づいて表示データを更新しました。リストボックスとリンクされたサブセットを使った「完全に」カスタムフィルターを使用することもできます。
Re: 列レベルに基づいて大規模なデータ テーブルをクエリし、名前にそのレベルが含まれる列を返すにはどうすればよいでしょうか?Craige: メモリに関する情報とご提案、ありがとうございます!試してみます。
Re: 列レベルに基づいて大規模なデータ テーブルをクエリし、名前にそのレベルが含まれる列を返すにはどうすればよいでしょうか?ジャルモ:
ご提案ありがとうございます。
いいえ、すべての列を同時にプロットするわけではありません。グレード|プロパティごとに1つのIMRチャートを作成したいのですが、グレードとプロパティごとに仕様が異なるため、dtをグレード|プロパティごとに分割する必要があります。その結果、多くの列がまばらになります。12のグレードに対して1つのプロパティのみをプロットした以下のスニペットをご覧ください。管理図ビルダーは、すべての空白行を処理できません。
Snippet of datatableSnippet of datatableデータテーブルのスニペット
Re: 列レベルに基づいて大規模なデータ テーブルをクエリし、名前にそのレベルが含まれる列を返すにはどうすればよいでしょうか?2021 年以降、状況は変わっている可能性がありますが、この投稿では、管理図ビルダーの欠損値に関するいくつかのオプションについて説明します。欠損データを無視する管理図を描画するにはどうすればよいでしょうか? (もちろん、スクリプトを使用すると、さまざまなオプションがあります)。
編集: 品質とプロセス方法 > 管理図ビルダー > 管理図ビルダーで除外されたサンプルと非表示のサンプル