JSL を使用して、最初に選択した行の指定された列から値を取得します。最初に選択した行の指定された列から単純に値を取得しようとしていますが、これはどういうわけか驚くほど難しいです。これまでに私が持っているものは次のとおりです。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Probe.jmp" );
dt << Select Where( :Wafer Number == "16" & :Die X == 3);
selRow = ( dt << get selected rows() )[0];
Row() = selRow;
site = :Site; // returns "1", should return "5" (:Site from row 15)
「サイト」は 5 になると予想しますが、1 になります。ここで何が欠けているのでしょうか?
また、3,300 万行のテーブルでこれと同様のことを試みましたが、JMP が数分間応答しなかったことにも注意してください。私はこれを行うさまざまな方法を実験していたので、誤って最初に 3,300 万個の項目のリストを作成してから 1,400 万番目の項目を取得するように指示してしまった可能性があります。上記の質問に対する最終的な解決策がどのようなものであれ、そうでないことを願っています。
自動化とスクリプト作成Re: JSL を使用して、最初に選択した行の特定の列から値を取得するGet Rows Where マトリックスの最初の [1] 要素のみを参照する必要があります。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Probe.jmp" );
dt << Select Where( :Wafer Number == "16" & :Die X == 3 );
site = :site[(dt << get selected rows())[1]];
// or
dt = Open( "$SAMPLE_DATA/Probe.jmp" );
site = :Site[(dt << get rows where( :Wafer Number == "16" & :Die X == 3 ))[1]];
Re: JSL を使用して、最初に選択した行の特定の列から値を取得するデータテーブル内のデータは基本的に、それぞれがエントリのリストである列のセットとして格納されるということですか?
(はい、私は Python コードを書く人なので、[0] -> [1] のことを見逃していました...)
また、役立つと思われる JMP ドキュメントのセクションをすべて調べましたが、これに関するもの (つまり、:site[rowNumber] 表記) は見つかりませんでした。誰かがこれがどこにあるかを知っている場合は、ドキュメントのそのセクションを読みたいと思います。
ありがとう、ジム!
Re: JSL を使用して、最初に選択した行の特定の列から値を取得するデータテーブルの添字付けコミュニティへの優れた投稿であり、スクリプト ガイドからドキュメントを見つけることができます。スクリプトガイド > データテーブル > データ値へのアクセスは良い出発点です。 詳細情報を含む他のページへの追加リンクが提供されます
Re: JSL を使用して、最初に選択した行の特定の列から値を取得する@txnelson : このアプローチでは、大きなテーブル (3,300 万行) の値を返すのに 1 秒の大部分がかかります。それ以外の場合、テーブルは正常に動作するため、このアプローチは隠れて何か強引な行為を行っている可能性があると考えています...他にテストできるアプローチはありますか?
--> 更新: 遅いのはデータ アクセスではなく、「Get Selected Rows()」呼び出しであることに今気づきました。興味深いですね、それは速いはずです。
Re: JSL を使用して、最初に選択した行の特定の列から値を取得する私は通常、Select Where よりも Get Rows Where() を使用し、続いて Get Selected Rows を使用します。選択した行を視覚的に表示する必要がない限り、私はいつもその方が速いと思っていました。
Re: JSL を使用して、最初に選択した行の特定の列から値を取得する@txnelson私の本当の目的は、「場所を選択する」ことではなく、データ テーブル (A) に関連付けられた 1 つのグラフ ビルダー プロット内の点をクリックし、データ テーブルに関連付けられたグラフ ビルダー プロットのデータ フィルターを更新することでした。 (B)。最初のクリックで行が選択され、JSL は最初のテーブルの選択された行から id フィールドを取得し、その値をグラフ ビルダー B プロットのデータ フィルターに貼り付けます。
今日、Get Selected Rows() を使用して (はい!) 動作するようになりましたが、不思議なのは、この関数が大規模なデータセットでは比較的遅いことです。目に見えない列ですべての「1」か何かを検索しているように思えます...
ご協力いただきありがとうございます!