¿Qué versión de JMP estás usando (cambia qué tipo de bucle se puede usar)?
Esta solución parece complicada, pero la idea es: obtener una lista de todas las columnas de clase y luego usar la tabla de datos con subíndices CON esa lista y obtener el índice máximo de valores encontrados (por lo que esto supone que las columnas están ordenadas)
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(4),
Compress File When Saved(1),
New Column("n", Numeric, "Continuous", Format("Best", 12), Set Values([., ., ., .])),
New Column("Class A1", Character, "Nominal", Set Values({"A1", "", "A1", ""})),
New Column("Class A2", Character, "Nominal", Set Values({"", "A2", "A2", ""})),
New Column("Class A", Character, "Nominal", Set Values({"", "", "", "A"})),
New Column("Class B", Character, "Nominal", Set Values({"", "", "", "", "B"}))
);
col_list = dt << Get Column Names("String");
class_cols = {};
For(i = 1, i <= N Items(col_list), i++,
col_name = col_list[i];
If(Starts With(col_name, "Class "),
Insert Into(class_cols, col_name);
);
);
dt << New Column("CLASS GROUP", Character, Nominal, << Set Each Value(
valcol = Max(Loc(Matrix(!IsMissing(dt[Row(), class_cols])))) + 1;
dt[Row(), valcol];
));
