Re: Col Median (y otros): agregue la opción "Dónde" - Estado cambiado a: ReconocidoHola @hogi , ¡Gracias por su sugerencia! Hemos capturado su solicitud y la tomaremos en consideración.
Re: Col Median (y otros): agregue la opción "Dónde" - El estado cambió a: InvestigandoRe: Col Median (y otros): agregue la opción "Dónde" - Estado cambiado a: ¡Nos gusta! (en la cola)@hogi esto se está analizando de cerca a medida que trabajamos en formas de mejorar la forma en que se utilizan las cláusulas Where() en JMP.¡Gracias por la sugerencia!
Re: Col Median (y otros): agregar la opción "Dónde"gracias 
Col Median (y otros): agregar opción "Dónde"☐ Nueva característica interesante
☑ ¡podría ayudar a muchos usuarios!
☐ elimina un "error"
☐ Es bueno tenerlo
☐ nadie lo necesita
#miTop10_2022
Hay un conjunto de publicaciones con preguntas sobre cómo restringir el Col... agregación funciones a un subconjunto específico.
Calcular la media de la columna mientras se restringen las observaciones utilizadas
JMP10: Las funciones Col Max() y Col Min() devolvieron los datos de la fila excluida
Funciones de columnas y estados de fila
¿Cómo uso la fórmula de columna máxima con una condición "donde"?
Excluir datos en la fórmula
Casos de aplicación:
- excluido rows from the aggregation:
Col Max(if(not(excluded()), :weight,.),: sex)
or even shorter (if one doesn't need values in the excluded rows);
Col Max(:weight, :sex, :excluded())
- Benchmark some data with a reference data set (country A in este post)
:data / Col Maximum(if(:country="A", :data,.))
Como se puede ver en los ejemplos anteriores, la solución fácil es una declaración If dentro de la agregación Col xyz :
col Mean( if(:sex=="M", :weight,.), :age);
col Mean( if(not(excluded()), :weight,.), :age)
El problema:
El enfoque es EXTREMADAMENTE lento: si la condición del subconjunto if contiene una comparación de cadenas:
¿Cómo se utiliza la fórmula de columna máxima con un WHERE/M78599?
Luego, el tiempo se escala cuadráticamente con el número de filas e incluso para conjuntos de datos pequeños con solo unos pocos miles de entradas, el cálculo toma segundos .
En el caso de conjuntos de datos con algunos millones de entradas, el proceso llevaría meses (!!!), pero se detendría por un tiempo de espera y aparecería un mensaje de error. ¡No es agradable!
Mi deseo:
Arreglar el error
Aún mejor:
Proporcionar una opción adicional donde para agregaciones Col xyz
- que corrige el problema de tiempo automáticamente: primero restringe el conjunto de datos, luego aplica la agregación (--> mucho más rápido, incluso si la genial aceleración "col..." tiene un error)
- que facilitan la definición de subconjuntos,
En lugar de (*) solo necesitas:
col Mean(:weight, :age, where(:sex=="M"))
col Mean(:weight, :age, where(not(excluded())))
Ejemplos de tiempos, copiados de aquí

Versión corregida: en una versión anterior, la captura de pantalla mostraba [ms] en lugar de [s]
Más deseos enviados por 
Automatización y scriptingAnálisis y modelado de datos básicosCombinación y limpieza de datosExploración y visualización de datosPersonalización masivaCompartir y comunicar resultadosRe: Col Median (y otros): agregue la opción "Dónde"durante el tiempo hasta que (...) esté disponible en una versión futura de Jmp, se puede acelerar la agregación de col en órdenes de magnitud a través de la solución alternativa
cambiar el tipo de datos a numérico o utilizar una columna de fórmula numérica.
https://community.jmp.com/t5/Discussions/Tips-and-Tricks-best-practice-with-JMP-JSL/td-p/662686
Re: Col Median (y otros): agregue la opción "Dónde"Gracias, @SamGardner , @Sarah-Sylvestre , ya está disponible en JMP18 
Antes de cambiar el estado a Entregado, ¿podría comprobar si el uso de Dónde es el previsto en este fragmento?
Comparado con el enfoque original es extremadamente lento: (
dt = Open( "$SAMPLE_DATA/Airline Delays.jmp" );
Print("old aproach");
t0 = hptime();
New Column( "max - 1st of month",
Formula( Col Maximum( if(:Day of Month == 1 , :Arrival Delay,.), :Month) )
);
dt << run formulas();
show((hp time()-t0)/1000000); // 0.5s
Print("new aproach - with Where");
t0 = hptime();
New Column( "max - 1st of month",
Formula( Col Maximum( :Arrival Delay, :Month, Where( :Day of Month == 1 ) ) )
);
dt << run formulas();
show((hp time()-t0)/1000000); // 140s
Re: Col Median (y otros): agregue la opción "Dónde"Print("new aproach - with Where, semi-bugfix");
t0 = hptime();
myWhere = Where( :Day of Month == 1 ) ;
Eval (Eval Expr(New Column( "max - 1st of month",
Formula( Col Maximum( :Arrival Delay, :Month, Expr(myWhere) )
))));
dt << run formulas();
show((hp time()-t0)/1000000); // 40s - better but still way too slow ...Re: Col Median (y otros): agregar opción "Dónde"Ah, todavía no funciona 
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "max - 1st of month",
Formula( Col Minimum( :weight, :sex, Where( :age ==17 ) ) )
);