Cómo seleccionar y colorear las 5 celdas con el valor más alto de muchas columnas usando JSLHola expertos,
¿Cómo selecciono y coloreo las 5 celdas con el valor más alto de muchas columnas usando JSL?
Ejemplo:
De todas las celdas de la columna Type_A a Type_D (la similitud del nombre de estas columnas es que contiene "_")
Quiero seleccionar y colorear la celda de los 5 valores más altos con amarillo.
Parece que la función "Seleccionar dónde" solo se aplica para comparar 2 columnas.
El resultado esperado debería ser algo como esto;
0,14, 0,12, 0,11, 0,1, 0,9 son las 5 celdas con el valor más alto.

Gracias.
Estoy usando JMP 17.2
Automatización y secuencias de comandosRe: Cómo seleccionar y colorear las 5 celdas con el valor más alto de muchas columnas usando JSL¿Cómo desea lidiar con los vínculos?
Re: Cómo seleccionar y colorear las 5 celdas con el valor más alto de muchas columnas usando JSLObtenga los nombres de las columnas que va a buscar.
Agregue una nueva columna que contenga el número de fila
Apile todas las columnas que desee buscar. Asegúrate de mantener la columna Fila
Ordene la tabla de datos apilados en orden descendente de la columna Datos
Recorra las primeras 5 filas de la tabla ordenada y establezca el color de la celda en la tabla original según la columna Etiqueta (nombre de columna en la tabla original) y la columna Fila.
Eliminar las tablas de datos apiladas y ordenadas
Eliminar la columna Fila de la tabla de datos original
Re: Cómo seleccionar y colorear las 5 celdas con el valor más alto de muchas columnas usando JSLHola @jthi ,
Pensé que teníamos una fórmula como =Top(5, column("Type_A"):column("Type_D) << Color Cell (3);
Donde 5 se refiere al número de valores superiores desde la columna Tipo A hasta la columna Tipo D.
Probaré la solución @txnelson .
Gracias !
Re: Cómo seleccionar y colorear las 5 celdas con el valor más alto de muchas columnas usando JSLHay una opción que usa matrices (la solución interactiva sugerida por Jim es mucho más fácil de entender y también fue la primera idea que me vino a la mente)
Names Default To Here(1);
// This table shows how this will behave with ties
// dt = Open("$SAMPLE_DATA/2D Gaussian Process Example.jmp");
// cols_of_interest = {"X1", "X2"};
dt = Open("$SAMPLE_DATA/Pogo Jumps.jmp");
cols_of_interest = {"Yat", "Yee", "Sam"};
m = dt[0, cols_of_interest];
v = Shape(m, N Items(m));
r = Ranking(v); // let Ranking decide our top5
idx = Loc(r > N Items(m) - 5);
vals = J(1, N Items(m), .);
vals[idx] = 1;
vals = Shape(vals, N Items(m) / N Items(cols_of_interest));
For(i = 1, i <= N Cols(vals), i++,
rows_to_color = Loc(vals[0, i]);
Column(dt, cols_of_interest[i]) << Color Cells("Yellow", rows_to_color)
);
Write();
Pogo Jumps.jmp - Yat, Yee, Sam

Ejemplo de proceso gaussiano 2D.jmp - X1, X2 (tenga en cuenta el comportamiento con vínculos)
