J'ai utilisé Color Out of Spec Values() pour éviter les erreurs de spécification de couleur dans mes données de mesure. J'ai plusieurs colonnes avec des données de mesure et les valeurs hors spécifications de chaque colonne sont colorées en fonction des spécifications de chaque colonne de paramètres.
Pour chaque colonne de paramètres, je souhaite créer une colonne adjacente qui attribue un "1" lorsque la cellule est colorée, sinon "0".
Comment y parvenir via JSL ?
Cela donne une idée de la façon dont vous pouvez gérer la situation pour une colonne
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));
vous pouvez ensuite créer une colonne supplémentaire pour colorer chaque colonne lorsque vous les parcourez