Necesito colorear las celdas en una columna según si el valor de una celda determinada es: dentro de 1 sigma,> 1 sigma pero <2 sigma,> 2 sigma pero
sigma y> 3 sigma, la sigma es el estándar desviación de la misma columna.
Este script no está completo ni es tan eficiente, pero te da una idea.
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
mu = Col Mean( :weight );
sd = Col Std Dev( :weight );
lo = mu - 3*sd;
hi = mu + 3*sd;
rows = dt << Get Rows Where( lo <= :weight <= hi );
:weight << Color Cells( "Red", rows );
lo = mu - 2*sd;
hi = mu + 2*sd;
rows = dt << Get Rows Where( lo <= :weight <= hi );
:weight << Color Cells( "Yellow", rows );
lo = mu - sd;
hi = mu + sd;
rows = dt << Get Rows Where( lo <= :weight <= hi );
:weight << Color Cells( "Green", rows );
Podría mejorar las pruebas booleanas de eficiencia si tiene una gran cantidad de filas.
Hola, Mark. Tengo una pregunta más relacionada de esta publicación. En mi marco de datos, tengo más de 10 columnas, editar y pegar el código que proporcionó es doloroso. Traté de crear un bucle for, pero no funciona. ¿Podría dar algún consejo sobre esto? ¡Gracias!
col = dt << obtener nombres de columna (cadena);
nc = nitems (col);
para (i = 2, i <= nc, i ++,
mu = Col Media (: Nombre (col [i]));
sd = Col Std Dev (: Nombre (col [i]));
lo = mu - 3 * sd;
hi = mu + 3 * sd;
filas = dt << Obtener filas donde (lo <=: Nombre (col [i]) <= hi);
: Nombre (col [i]) << Celdas de color ("Rojo", filas);
filas = dt << Obtener filas donde (: Nombre (col [i]) hi);
: Nombre (col [i]) << Celdas de color ("Púrpura", filas);
lo = mu - 2 * sd;
hi = mu + 2 * sd;
filas = dt << Obtener filas donde (lo <=: Nombre (col [i]) <= hi);
: Nombre (col [i]) << Celdas de color ("Amarillo", filas);
lo = mu - sd;
hola = mu + sd;
filas = dt << Obtener filas donde (lo <=: Nombre (col [i]) <= hi);
: Nombre (col [i]) << Celdas de color ("Verde", filas);
);