Utilicé Color Out of Spec Values() para corregir errores de especificación de color en mis datos de medición. Tengo varias columnas con datos de medición y los valores fuera de especificación para cada columna se colorean de acuerdo con la especificación de cada columna de parámetro.
Para cada columna de parámetro, quiero crear una columna adyacente que asigne un "1" cuando la celda tenga el color de lo contrario, "0".
¿Cómo lograr esto a través de JSL?
Esto da una idea de cómo puede manejar la situación de una columna.
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));
luego puede crear columnas adicionales para colorear cada columna cuando las recorre