JSL で値を繰り返さずに、グループごとに 1 回列に入力します。こんにちは!
したがって、以下のデータテーブルがあります。個々のテスト結果は「テスト結果」列にあり、それぞれの y がテスト a、b、および c に合格したかどうかを示します。 「全体結果」列は、2 つ以上のテスト (a、b、c) に合格した場合に「合格」を示します。
式を使用して全体的な結果を計算することはできましたが、私がやりたいのは、Y 変数ごとに 1 回の結果を示すリストを取得することです。つまり、理想的な全体的な結果のように、全体的な結果= 「合格、不合格、合格」になります。何か案は??

dtのコード:
dt = New Table( "example",
Add Rows( 0 ),
New Column( "Y", character ),
New Column( "test",character ),
New Column( "test result",character )
)
:Y << set values( {var1,var1,var1,var2,var2,var2,var3,var3,var3});
:test << set values( {a,b,c,a,b,c,a,b,c});
:test result<< set values( {pass,pass,fail,fail,pass,fail,pass,pass,pass});
new column("overall result",Formula(if(col sum(test result=="pass",Y)>=2, "Pass", "Fail")));自動化とスクリプト作成Re: JSL で値を繰り返さずにグループごとに 1 回列を入力する式に少し変更を加えるだけで十分です。
New Column( "overall result",
Formula(
If(
Col Cumulative Sum( 1, :Y ) > 1, "",
Col Sum( test result == "pass", :Y ) >= 2, "Pass",
"Fail"
)
)
);

Re: JSL で値を繰り返さずにグループごとに 1 回列を入力する追加オプション (私は通常、Row() == Col Min(Row()) または Row() == Col Max(Row()) を使用してこれらのタイプの「シフト」を実行します。
Names Default To Here(1);
dt = New Table("example 4",
Add Rows(9),
Compress File When Saved(1),
New Column("Y", Character, "Nominal", Set Values({"var1", "var1", "var1", "var2", "var2", "var2", "var3", "var3", "var3"})),
New Column("test", Character, "Nominal", Set Values({"a", "b", "c", "a", "b", "c", "a", "b", "c"})),
New Column("test result", Character, "Nominal", Set Values({"pass", "pass", "fail", "fail", "pass", "fail", "pass", "pass", "pass"}))
);
dt << New Column("Res", Character, Nominal, Formula(
If(Row() != Col Min(Row(), :Y),
"" // not first row fir Y group
, Col Sum(:test result == "pass", :Y) >= 2,
"pass"
, // else
"fail"
)
));