Ich habe Color Out of Spec Values() verwendet, um Spezifikationsfehler in meinen Messdaten farblich zu kennzeichnen. Ich habe mehrere Spalten mit Messdaten und die außerhalb der Spezifikation liegenden Werte für jede Spalte werden entsprechend der Spezifikation für jede Parameterspalte farblich gekennzeichnet.
Ich möchte für jede Parameterspalte eine Nachbarspalte erstellen, die eine "1" vergibt, wenn die Zelle eingefärbt ist, andernfalls eine "0".
Wie erreicht man dies über JSL?
Dies gibt eine Vorstellung davon, wie Sie die Situation für eine Spalte handhaben können
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
a = {1, 3, 5};
b = {2, 4, 6};
c = {7, 8, 9};
:height << color cells({{"Red", a}, {"blue", b}, {"yellow", c}});
:weight << color cells({{"Red", a}});
:age << color cells({{"Red", a}, {"blue", b}});
get_colored_cells = Function({dt, colname}, {Default Local},
colscript = Column(dt, colname) << Get Script;
l = Substitute(Name Expr(colscript), Expr(New Column()), List());
colored_cells = {};
Try(
colors = l["Color Cells"];
If(Type(colors[1]) == "List",
jmptrickery = 1;
,
jmptrickery = 0;
);
For Each({color}, colors,
If(jmptrickery,
Insert Into(colored_cells, color[2]);
,
Insert Into(colored_cells, color);
);
);
);
return(Matrix(colored_cells));
);
colname = "age";
// for single column
rows = J(1, N Rows(dt), 0);
colored_rows = get_colored_cells(dt, colname);
rows[colored_rows] = 1;
dt << New Column("result", Numeric, Nominal, Values(rows));
Sie können dann zusätzliche Spalten erstellen, um jede Spalte einzufärben, wenn Sie sie durchlaufen.