Hay un conjunto de publicaciones con preguntas sobre cómo restringir el Col ... agregación funciones a un subconjunto específico.
https://community.jmp.com/t5/Discussions/Compute-Column-Mean-while-restricting-observations-used/mp...
https://community.jmp.com/t5/Discussions/JMP10-Col-Max-and-Col-Min-functions-returned-the-data-from/...
https://community.jmp.com/t5/Discussions/Col-Functions-and-Row-States/td-p/351705
https://community.jmp.com/t5/Discussions/How-do-I-use-the-Col-Maximum-Formula-with-a-quot-where-quot/mp/34840
https://community.jmp.com/t5/Discussions/Col-Functions-and-Row-States/mp/351705
https://community.jmp.com/t5/Discussions/Exclude-data-in-formula/td-p/512366
Casos de aplicación:
- Excluir excluido filas de la agregación:
Col Max(if(not(excluded()), :weight,.),: sex)
o incluso más corto (si uno no necesita valores en las filas excluidas);
Col Max(:weight, :sex, :excluded())
- Comparar algunos datos con un conjunto de datos de referencia (país A en este correo)
:data / Col Maximum(if(:country="A", :data,.))
Como se puede ver en los ejemplos anteriores, la solución fácil es una Si declaración dentro de la Columna xyz agregación:
col Mean( if(:sex=="M", :weight,.), :age)
col Mean( if(not(excluded()), :weight,.), :age)
El problema:
El enfoque es EXTREMADAMENTE lento - si el subconjunto si -condición contiene un comparación de cadenas:
https://community.jmp.com/t5/Discussions/How-do-I-use-the-Col-Maximum-Formula-with-a-quot-where-quot/mp/578576/highlight/true#M78599
Luego, el tiempo se escala cuadráticamente con el número de filas e incluso para pequeños conjuntos de datos con solo unas pocas 1000 entradas, el cálculo toma segundos .
Para conjuntos de datos con algunos millones de entradas, se necesitaría meses (!!!), pero se detendrá por un tiempo de espera y aparecerá un mensaje de error. ¡No está bien!
Mi deseo:
arreglar el error
Aun mejor:
proporcionar un adicional dónde opción para Columna xyz agregaciones
- que soluciona el problema de sincronización 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 las definiciones de subconjuntos,
en lugar de (*), solo necesitas:
col Mean(:weight, :age, where(:sex=="M"))
col Mean(:weight, :age, where(not(excluded())))
ejemplos de temporización, copiados de https://community.jmp.com/t5/Discussions/How-do-I-use-the-Col-Maximum-Formula-with-a-quot-where-quot/mp/578576/highlight/true#M78599
