Il y a un ensemble de messages avec des questions sur la façon de restreindre le Col ... agrégation fonctions à un sous-ensemble spécifique.
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
Cas d'application :
- Exclure exclu lignes de l'agrégation :
Col Max(if(not(excluded()), :weight,.),: sex)
ou même plus court (si l'on n'a pas besoin de valeurs dans les lignes exclues) ;
Col Max(:weight, :sex, :excluded())
- Comparer certaines données avec un ensemble de données de référence (pays A en cette Publier)
:data / Col Maximum(if(:country="A", :data,.))
Comme on peut le voir dans les exemples ci-dessus, la solution facile est une Si déclaration à l'intérieur du Col xyz agrégation :
col Mean( if(:sex=="M", :weight,.), :age)
col Mean( if(not(excluded()), :weight,.), :age)
Le problème:
L'approche est EXTRÊMEMENT lente - si le sous-ensemble si -condition contient un comparaison de chaînes :
https://community.jmp.com/t5/Discussions/How-do-I-use-the-Col-Maximum-Formula-with-a-quot-where-quot/mp/578576/highlight/true#M78599
Ensuite, le temps évolue de manière quadratique avec le nombre de lignes et même pour les petits ensembles de données avec seulement quelques 1000 entrées, le calcul prend secondes .
Pour les ensembles de données avec quelques millions d'entrées, il faudrait mois (!!!) - mais sera arrêté par un délai d'attente et un message d'erreur apparaîtra. Pas gentil!
Mon souhait:
corriger le bogue
Encore mieux:
Fournir un supplément où option pour Col xyz agrégations
- qui résout automatiquement le problème de synchronisation : première restreint l'ensemble de données, puis applique l'agrégation (--> beaucoup plus rapide, même si l'accélération cool "col ..." a un bug)
- qui facilitent les définitions de sous-ensembles,
au lieu de (*), vous avez juste besoin de :
col Mean(:weight, :age, where(:sex=="M"))
col Mean(:weight, :age, where(not(excluded())))
exemples de synchronisation, copiés 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
