Col Median (en fait : remplaçant) - qu'est-ce qui ne va pas ?Je ne comprends pas ce qui ne va pas avec ce fichier.
hauteur_rel et hauteur_rel 2 ont exactement la même formule.
Mais en hauteur_rel 2 les valeurs manquent.
Avant d'enregistrer le fichier, l'éditeur de formules s'est plaint qu'il y avait trop peu d'arguments dans le Col médian fonction.
On pourrait convaincre l'éditeur de formules que tout est OK en double-cliquant sur l'éditeur de formules puis en fermant toutes les fenêtres en cliquant sur OK, Ok, Ok.
Après avoir enregistré le fichier, ce n'est pas possible. Je n'ai pas trouvé de moyen de relancer la formule.
Si vous copiez et collez la colonne, le copie est OK.
Fusion et nettoyage des donnéesRe : Col Median - qu'est-ce qui ne va pas ?discussion communautaire connexe :
Formule créée dynamiquement non évaluée
Re : Col Median - qu'est-ce qui ne va pas ?Juste pour ajouter un peu de mystère supplémentaire, il semble qu'une seule des fonctions substituées doit inclure le "()" pour que les deux formules ci-dessous fonctionnent.
Modifier : Et après avoir creusé davantage, il semble que JMP ne tolérera qu'une seule fonction dans une expression passée sans le "()" dans la substitution. Trois autres formules sont en bas où j'enveloppe une autre fonction autour de votre expression existante, et cela fonctionnera correctement avec deux fonctions quelconques remplacées par les parenthèses. Je soupçonne qu'il y a une passe interne que JMP fait pour faire des déductions sur une expression afin de la rendre légale et qu'elle ne fera qu'un seul ajustement, puis se cassera.
myFormula3 = Expr(__myHead__( :height, __aggregation__( :height ) ));
Substitute Into( myFormula3,
Expr( __myHead__ ), Expr( Divide() ),
Expr( __aggregation__ ),Expr( Col Median )
);
myFormula4 = Expr(__myHead__( :height, __aggregation__( :height ) ));
Substitute Into( myFormula4,
Expr( __myHead__ ), Expr( Divide ),
Expr( __aggregation__ ),Expr( Col Median() )
);
myFormula5 = Expr(__top__(__myHead__( :height, __aggregation__( :height ) )));
Substitute Into( myFormula5,
Expr(__top__), Expr(Log),
Expr( __myHead__ ), Expr( Divide),
Expr( __aggregation__ ),Expr( Col Median )
);
myFormula6 = Expr(__top__(__myHead__( :height, __aggregation__( :height ) )));
Substitute Into( myFormula6,
Expr(__top__), Expr(Log()),
Expr( __myHead__ ), Expr( Divide()),
Expr( __aggregation__ ),Expr( Col Median )
);
myFormula7 = Expr(__top__(__myHead__( :height, __aggregation__( :height ) )));
Substitute Into( myFormula7,
Expr(__top__), Expr(Log()),
Expr( __myHead__ ), Expr( Divide),
Expr( __aggregation__ ),Expr( Col Median() )
);
Re : Col Median - qu'est-ce qui ne va pas ?Je ne connais aucun webinaire qui couvre cela (ou même discute de ce problème), mais c'est une solution de contournement intelligente pour forcer JMP à analyser à nouveau cette expression. je suis vraiment impressionné par @jthi La solution la plus récente d'inclure le () dans la substitution, je n'aurais pas deviné que cela fonctionnerait, mais cela semble aider JMP à reconnaître que vous transmettez une fonction et qu'il gère le reste. Solution surprenante et intéressante à ce qui est un problème mystérieux et déroutant !
Re : Col Median - qu'est-ce qui ne va pas ?Wow, découverte importante!
Pour être honnête, je ne savais pas qu'il fallait utiliser les crochets - je n'aurais même pas parié que ça marche.
Merci beaucoup, je vais certainement ajouter un signet pour ce post à mon liste de trucs et astuces 
Re : Col Median - qu'est-ce qui ne va pas ?Je ne pense pas que le problème soit avec Substitute mais plutôt avec autre chose. Peut-être que JMP ne comprend pas que Col Median est censé fonctionner dans ce cas car le remplacement est un peu bizarre (il manque des crochets). Voici la manière la plus "correcte" de le faire (note () après Diviser et Col Médian ).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
myFormula3 = Expr(__myHead__(:height, __aggregation__(:height)));
Substitute Into(myFormula3, Expr(__myHead__), Expr(Divide()), Expr(__aggregation__), Expr(Col Median()));
show(Name Expr(myFormula3));
new_col1 = Eval(
Substitute(
Expr(New Column("new3", Formula(__f__))),
Expr(__f__), Name Expr(myFormula3)
)
);
Re : Col Median - qu'est-ce qui ne va pas ?Je craignais d'avoir besoin d'instructions If imbriquées et plusieurs fois du même code pour que cela fonctionne.
Solution de contournement "sale" très cool - merci 
... J'aimerais qu'on n'en ait pas besoin :
corrige le bogue dans Substitute
édit : pas nécessaire
@julien : Existe-t-il un webinaire qui explique pourquoi le code ci-dessus fonctionne uniquement avec un Parse(Char)) ?
Re : Col Median - qu'est-ce qui ne va pas ?J'ai "résolu" ce type de problème plus tôt au travail, mais je ne me souviens plus comment et pourquoi c'est arrivé. Je ne l'ai pas non plus enregistré dans ma liste de trucs et astuces, je ne peux donc pas trouver facilement le raisonnement et la solution. La deuxième expression semble être bloquée si elle se trouve à l'intérieur d'une autre expression lorsqu'elle est construite comme ceci.
Une solution de contournement :
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
myFormula3 = Expr(__myHead__(:height, __aggregation__(:height)));
Substitute Into(myFormula3, Expr(__myHead__), Expr(Divide), Expr(__aggregation__), Expr(Col Median));
myFormula4 = Expr(__myHead__(:height, __aggregation__(:height)));
Substitute Into(myFormula4, Expr(__myHead__), Expr(Divide));
Substitute Into(myFormula4, Expr(__aggregation__), Expr(Col Median));
Show(Name Expr(myFormula3));
Show(Name Expr(myFormula4));
new_col = Eval(
Substitute(
Expr(New Column("new3", Formula(__f__))),
Expr(__f__), Parse(Char(Name Expr(myFormula3)))
)
);
Re : Col Median - qu'est-ce qui ne va pas ?Quel est le problème avec ceux-ci :
myFormula3 = Expr(__myHead__( :height, __aggregation__( :height ) ));
Substitute Into( myFormula3,
Expr( __myHead__ ), Expr( Divide ),
Expr( __aggregation__ ),Expr( Col Median )
);
myFormula4 = Expr(__myHead__( :height, __aggregation__( :height ) ));
Substitute Into( myFormula4,Expr( __myHead__ ), Expr( Divide ));
Substitute Into( myFormula4,Expr( __aggregation__ ),Expr( Col Median ));
?
Re : Col Median - qu'est-ce qui ne va pas ?Merci beaucoup - 3 façons de résoudre mon problème 
Juste via "OK", cela n'a pas fonctionné.
Creuser plus profondément - pourquoi est-ce arrivé ...
Y a-t-il une raison pour laquelle maFormule3 (avec substitution de Tête et Agrégation ) et maFormule4 (avec remplacement ultérieur de Tête et Agrégation ) ne fonctionne pas ? maFormule1 et maFormule2 (juste en remplaçant l'un des deux) faire.
(idem pour Jmp 16.2 et Jmp 17)
nom Expr(maFormulex) se ressemblent tout à fait :
Nom Expr(myFormula1) = Divide(:height, Col Median(:height));
Nom Expr(myFormula2) = :height / Col Median(:height);
Nom Expr(myFormula3) = Divide(:height, Col Median(:height));
Nom Expr(myFormula4) = Divide(:height, Col Median(:height));
Malheureusement, avant d'enregistrer et de rouvrir le fichier, aucune des 3 solutions ci-dessus ne fonctionne 
Ce serait bien si un Table de données actuelle() << Réexécutez les formules ; pourrait résoudre le problème.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
myFormula1 = Expr(__myHead__( :height,Col Median( :height ) ));
Substitute Into( myFormula1,
Expr( __myHead__ ), Expr( Divide ),
);
myFormula2 = Expr(Divide( :height, __aggregation__( :height ) ));
Substitute Into( myFormula2,
Expr( __aggregation__ ),Expr( Col Median )
);
myFormula3 = Expr(__myHead__( :height, __aggregation__( :height ) ));
Substitute Into( myFormula3,
Expr( __myHead__ ), Expr( Divide ),
Expr( __aggregation__ ),Expr( Col Median )
);
myFormula4 = Expr(__myHead__( :height, __aggregation__( :height ) ));
Substitute Into( myFormula4,Expr( __myHead__ ), Expr( Divide ));
Substitute Into( myFormula4,Expr( __aggregation__ ),Expr( Col Median ));
Show( Name Expr( myFormula1 ) );
Show( Name Expr( myFormula2 ) );
Show( Name Expr( myFormula3 ) );
Show( Name Expr( myFormula4 ) );
Eval( Substitute( Expr( New Column( "new1", Formula( __f__ ) ) ), Expr( __f__ ), Name Expr( myFormula1 ) ) );
Eval( Substitute( Expr( New Column( "new2", Formula( __f__ ) ) ), Expr( __f__ ), Name Expr( myFormula2 ) ) );
Eval( Substitute( Expr( New Column( "new3", Formula( __f__ ) ) ), Expr( __f__ ), Name Expr( myFormula3 ) ) );
Eval( Substitute( Expr( New Column( "new4", Formula( __f__ ) ) ), Expr( __f__ ), Name Expr( myFormula4 ) ) );
Re : Col Median - qu'est-ce qui ne va pas ?Essayez de revenir à l'éditeur de formule et appuyez sur Appliquer. Ou cochez Supprimer l'évaluation -> Appliquer -> décochez Supprimer l'évaluation -> Appliquer à nouveau. Vous pouvez également essayer Current Data Table() << Réexécuter les formules.