col2とcol3が特定の文字列に一致する行を検索し、それらの行のcol7のセルの値を返すスクリプトを作成しました。ただし、これらの変数を新しいテーブルの新しい列に書き込む際に問題が発生します。
....
New Table( "Results",Add Rows( 2 ),
New Column( " FUS",Character,"Nominal",
Set Values({"Fus1","Fus2"})),
New Column( "PASS/FAIL",continuous,"Nominal", formula( Name Expr(APass)),formula(Name Expr(BPass)));
)ここで、APassとBpassは、それぞれの検索行のcolumn7値に等しい変数です。それぞれPassとFailの文字列です。ただし、テーブルを作成すると、最後の関数が上書きされ、テーブル全体で結果が入力されます。 したがって、テーブルはFus1-Pass Fus2-Failである必要がありますが、Fus1-FailFus2-Failを出力します。順番を変えると逆になります。
新しい列に複数の変数を入力する方法についてのヘルプはありますか?
とても有難い
このトピックに関する以前の説明で述べたように、列に数式を定義する必要はありません。これは、ビッグクラスのデータテーブルを使用した簡単な図です。列に2つの数式を定義すると、2番目の数式が最初の数式に置き換わります。
new column("two formula", formula(:height), formula(:weight));
次の結果が得られます

定義されている2番目の式は、JMPが最終的に使用する式であることに注意してください。
さて、これは式が複雑になり得ないということではありません。実際には、各行を異なる方法で処理する式を定義できます。1つの式で定義する必要があります。これは、数式に複数の列を取り込んでそれらを比較する、より複雑な数式の簡単な例です。
New Column( "combined formula",
formula(
If(
:Sex == "F" & :age > 12, :weight,
:Sex == "F" & :age <= 12, :height,
:Sex == "M" & :age > 13, :weight,
:Sex == "M" & :age <= 13, :height
)
)
)

私はこの応答をSMWに個人的に提供しました。うまくいけば、それは他の人を助けるでしょう。
このコードを実行してみてください。ログウィンドウを見て、何が起こるかを確認します。get rows where関数は、実際の行番号ではなく、行列を返します。行の値を使用するには、行列をループする必要があります。
Names Default To Here( 1 );
dt1 = New Table( "Test", Add Rows( 4 ),
New Column( "Column 1", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [1, 2, 3, 4] ) ),
New Column( "Column 2", Character, "Nominal",
Set Values( {"This is EMOTIONAL", "abc", "EMO", "Here's an EMO example"} ) ),
New Column( "Column 3", Character, "Nominal",
Set Values(
{"And not KLARIFIED", "KLA", "xyz", "This contains KLA string"} ) ),
New Column( "Column 4", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [., ., ., .] ) ),
New Column( "Column 5", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [., ., ., .] ) ),
New Column( "Column 6", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [., ., ., .] ) ),
New Column( "Column 7", Character, "Nominal",
Set Values( {"Hello", "World", "Fubar", "Ski"} ) ),
);
match_rows = dt1 << get rows where(contains(as column(2),"EMO")
& contains(as column(3),"KLA"));
for (i = 1, i <= nrows(match_rows), i++,
one_row = match_rows[i];
apass = column(dt1, 7)[one_row];
print(apass);
);