ステップバイステップの行「リスト」構築: すべての行を取得、次に X の行を取得、次に Y (および X) の行を取得行のコンテナであるオブジェクトの操作方法を理解しようとしています。その説明さえ間違っているかもしれません。
この文脈における「FilteredRows」とは何でしょうか?
dt = Current Data Table();
FilteredRows = dt << get rows where( :Date == 12May2025 );
Show( N Rows( FilteredRows ) );
少し話を戻しますが、データテーブル内のすべての行にオブジェクトを設定する JSL コマンドはありますか? それとも、それは必要ないのでしょうか?
「すべての行を選択」を回避できる最も近いものは次のとおりです。
AllRows = dt << where(1); の行を取得します。
不正行為のような気がしますが。
さらに重要なのは、行のサブセットに追加のフィルターを適用できるようにしたいということです。
これは機能しませんが、意図は伝わります。
XFilteredRows = dt << where( :X == 42 ); の行を取得します。
XYFilteredRows = XFilteredRows << where(:Y ==1.21); の行を取得します。
はい、両方を1行で行うことができます
XYFiteredRows = dt << (:X==42 & :Y==1.21) の行を取得します。
ただし、私はこれを For Each Row ループで使用することを計画しています。このループでは、X は行の 99% を削除し、その後、XY を満たす行、XZ を満たす行、X を満たすが Y を満たさない行など、より多くのパラメータを個別にフィルター処理する必要があります。
大きなテーブルでは、X 個のフィルターされた行を保持する方が高速になると思います。
関連する点として、私が取得しようとしている結果の 1 つは、「Group By」の結果と非常に似ていますが、カスタム数式を使用しています。
列式の JSL:
列平均(:パラメータ,:X)
「グループ化」は、組み込み関数から作成された列式には非常に便利ですが、より複雑な計算を実行したい場合、同じグループ化効果を実現する方法がわかりません。
自動化とスクリプトRe: ステップバイステップの行「リスト」構築: すべての行を取得、次に X の行を取得、次に Y (および X) の行を取得「コンテナ」は(1次元の)「マトリックス」です。
手動でマトリックスを作成することもできます。
myRows=行列 ({1,2,3})
私の行 = 1::3
myRows = [1, 2, 3]
交差する方法は2つあります(和集合、差集合などの他の集合演算も同様です)。
a)連想配列を使用する
aa1 = associative array (myRows1);
aa2 = associative array (myRows2);
aa1 << intersect(aa2);<BR />// aa1 << remove(aa2);
list of rows = aa1 << get keys;
rows= matrix(list of rows);

b) [JMP19の新機能]:リストの使用
list1 = as list (myRows1);
list2 = as list (myRows2);
<STRIKE>
list of rows = set intersect(list1, list2);
</STRIKE>
list of rows = set intersection(list1, list2);
//list of rows = set difference(list1, list2);
rows= matrix(list of rows);

行列の交差?おそらくない
Re: ステップバイステップの行「リスト」構築: すべての行を取得、次に X の行を取得、次に Y (および X) の行を取得ホギ、
また助けてくれました。ありがとう!
一つ明確にしておくと、私はあなたの構文を使用しました
list of rows = set intersect(list1, list2);
最初は青色に変わったので大丈夫だと思ったのですが、大文字になっていないのが不思議でした。その後、スクリプトガイドで調べてみたら、「Set Intersection(交差の設定)」だと分かりました。これで準備完了です。乾杯!