Füllen Sie die Spalte einmal pro Gruppe, ohne Werte mit JSL zu wiederholenHallo!
Ich habe also die folgende Datentabelle. Die einzelnen Testergebnisse stehen in der Spalte „Testergebnis“ und geben an, ob das jeweilige Y die Tests a, b und c besteht. Die Spalte „Gesamtergebnis“ zeigt ein „bestanden“ an, wenn 2 oder mehr der Tests (a,b,c) bestanden wurden.
Ich konnte das Gesamtergebnis mit einer Formel berechnen, aber ich würde gerne eine Liste erhalten, die das Ergebnis einmal pro Y-Variable angibt – also Gesamtergebnis = „bestanden, nicht bestanden, bestanden“, wie es das ideale Gesamtergebnis hat. Irgendwelche Ideen??

Code für 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")));Automatisierung und SkripterstellungBetreff: Spalte einmal pro Gruppe füllen, ohne Werte mit JSL zu wiederholenIch brauche nur eine kleine Änderung an Ihrer Formel.
New Column( "overall result",
Formula(
If(
Col Cumulative Sum( 1, :Y ) > 1, "",
Col Sum( test result == "pass", :Y ) >= 2, "Pass",
"Fail"
)
)
);

Betreff: Spalte einmal pro Gruppe füllen, ohne Werte mit JSL zu wiederholenZusätzliche Option (normalerweise mache ich diese Art von „Verschiebungen“ mit Row() == Col Min(Row()) oder 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"
)
));