encontrar el primer elemento con condición en una columnaHola, tengo un dato con 2 columnas: grupo y puntaje, y quiero calcular la 3ra columna llamada primero, que devuelve el "primer puntaje por grupo que no es 10000000000. Entonces, en este ejemplo de datos, grupo a = 0, grupo b = 53. y dado que el grupo c solo contiene 10000000000, no aparece nada para él.
¿Alguien podría ayudarme con una fórmula jmp para esta columna pero no jsl? ¡Muchas gracias!
| grupo | puntaje | primero |
| a | 10000000000 | 0 |
| a | 0 | 0 |
| a | 100 | 0 |
| a | 10000000000 | 0 |
| a | 8 | 0 |
| a | 10000000000 | 0 |
| a | 10000000000 | 0 |
| a | 10000000000 | 0 |
| b | 53 | 53 |
| b | 10000000000 | 53 |
| b | 1 | 53 |
| C | 10000000000 | . |
| C | 10000000000 | . |
| C | 10000000000 | . |
AnalíticaRe: encontrar el primer elemento con condicion en una columnaAquí hay un enfoque diferente para resolver el problema.Este enfoque es un guión.Debería ser más eficiente que el enfoque de columna de fórmula única anterior.Primero encuentra los primeros valores, los extrae a una nueva tabla y luego usa la plataforma de actualización para fusionar los valores nuevamente en la tabla de datos original.
names default to here(1);
dt=current data table();
// Create a column that finds the first values
dt<<NEW column=""></NEW>
Re: encontrar el primer elemento con condicion en una columnaSon muchas filas. Esta fórmula puede requerir menos memoria. Supone que el primer valor ≠ 10000000000 siempre es menor que 10000000000.
If(Col Min(:score, :group) == 10000000000,
.,
Col Min(
:score[Col Min(Row(), :group, :score == 10000000000)],
:group
)
)
Re: encontrar el primer elemento con condicion en una columna¡Gracias Jim! Pegué su fórmula directamente en mis datos y verifiqué nuevamente: funcionó en las ~ 7000 filas superiores, pero a partir de ahí todo es ".", sin mostrar el primer número que no es 10000000. Cuando ingresé la fórmula, se ejecutó durante mucho tiempo, así que tuve que presionar esc para descongelar jmp. ¿Es eso lo que hace que esto suceda? Totalmente tengo alrededor de 7000k filas.Re: encontrar el primer elemento con condicion en una columnaEl volcado de pantalla de la fórmula no me permite ver si está haciendo referencia a las columnas correctamente.Es decir, ¿está colocando un ":" delante de los nombres de las columnas, pero no delante de curgroup y value?
¿Qué mensajes de error recibe?
Cuando dices que no está funcionando correctamente, ¿qué significa eso?¿No obtiene los valores correctos o no le está dando ningún resultado?
Adjunté su tabla de datos de muestra con una columna llamada Fórmula de Jim que tiene mi fórmula aplicada a la tabla de datos.Esto es para que pueda tener una versión funcional de la fórmula para compararla con lo que está intentando crear.
Re: encontrar el primer elemento con condicion en una columnaHola Jim, gracias por la respuesta. Lo pegué en la fórmula y reemplacé el nombre de la columna, pero no produjo la respuesta correcta. ¿Podría ayudarme a revisar la siguiente captura de pantalla? Gracias.

Re: encontrar el primer elemento con condicion en una columnaAquí hay una forma de escribir la fórmula.
curgroup = :group;
value = :score[Min(
Current Data Table() << get rows where(
:group == curgroup & :score != 10000000000
)
)];