数式エディタ:添え字関数を動的に使用する際のヘルプこんにちは、みんな、
データテーブル内の行を汎用的に比較したいと考えています。そのためには、特定の特性を持つ特定の行から値を検索して返す数式列を作成したいです。
sowiakg_1-1788989884725.pngsowiakg_1-1788989884725.pngsowiakg_1-1788989884725.png
このスクリーンショットの例で、「コントロール結果」列を、一致する「ドナー」フィールドを持つ「コントロール」行を返し、対応する「結果」スコアを返す数式列にしたいと考えています。これには数式エディターを使用したいのですが、別の行からデータを返す最も直感的な方法は、添え字を使用することだと考えています。
しかし、「i = グループが一致し、条件が「コントロール」である行の最下位」というロジックを適切に作成する方法がわかりません。「i = X 個の条件に一致する行番号」を返すには、どのような数式ブロック(またはその組み合わせ)を使用すればよいでしょうか?また、ここで使用できる byVar のトリックがあるかもしれません。
余談ですが、Match関数も選択肢の一つであることは承知していますが、各グループごとに数式ブロック内で「Control」値を書き出す(または独自の添え字呼び出しを行う)必要があるようです。私はより大規模なデータセットでこのワークフローを再現しようとしており、ハードコーディングされた値を最小限に抑えたいと考えています。また、多くの非プログラマーの協力者と共同作業を行っているため、JSLの使用は避けたいです。数式エディタを使用して、必要に応じて条件フィールドと結果フィールドを入れ替えるだけで済むようにしたいと考えています。
ありがとう!
件名:数式エディタ:添え字関数を動的に使用する際のヘルプ私が考え出した公式は以下のとおりです。
Col Cumulative Sum( If( :Condition == "Control", :Result ), :Group )
txnelson_0-1789008517877.pngtxnelson_0-1789008517877.png
件名:数式エディタ:添え字関数を動的に使用する際のヘルプCol At() 関数は JMP19 で追加され、グループ内の特定のインデックスの値を検索できます。そのため、コントロール行が常にテスト行より前にある場合(列 3 が結果、列 1 がグループの場合)に使用できます。
Col At(:Column 3, 1, :Column 1)
jthi_0-1789014294613.png
スクリプト索引にはさらに多くの例が掲載されています。