Col Mediano (in realtà: Sostituto) - cosa c'è che non va?Non capisco cosa c'è che non va in questo file.
altezza_rel E altezza_rel 2 hanno esattamente la stessa formula.
Ma in altezza_rel 2 mancano i valori.
Prima di salvare il file, l'editor di Formula si è lamentato del fatto che c'erano troppo pochi argomenti nel file Col Mediano funzione.
Si potrebbe convincere l'editor di formule che è tutto a posto facendo doppio clic sull'editor di formule e quindi chiudendo tutte le finestre facendo clic su OK, Ok, Ok.
Dopo aver salvato il file, questo non è possibile. Non ho trovato un modo per far rivivere la formula.
Se copi e incolli la colonna, il file copia va bene.
Miscelazione e pulizia dei datiRe: Col Median - cosa c'è che non va?discussione comunitaria correlata:
Formula creata dinamicamente che non viene valutata
Re: Col Median - cosa c'è che non va?Giusto per aggiungere un po' di mistero in più, sembra che solo una delle funzioni sostituite debba includere il "()" in modo che entrambe le formule seguenti funzionino.
Modificare : E dopo ulteriori ricerche, sembra che JMP tollererà solo 1 funzione in un'espressione passata senza "()" nella sostituzione. Altre tre formule sono in fondo dove avvolgo un'altra funzione attorno alla tua espressione esistente, e funzionerà correttamente con due funzioni qualsiasi sostituite con le parentesi. Sospetto che ci sia un passaggio interno che JMP fa per fare inferenze su un'espressione al fine di renderla legale e farà solo un aggiustamento e poi si interromperà.
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 - cosa c'è che non va?Non conosco alcun webinar che lo copra (o addirittura discuta questo problema), ma è una soluzione intelligente per forzare JMP ad analizzare nuovamente quell'espressione. Sono davvero impressionato @jthi La soluzione più recente di includere () nella sostituzione, non avrei immaginato che avrebbe funzionato, ma sembra aiutare JMP a riconoscere che stai passando una funzione e gestisce il resto. Soluzione sorprendente e interessante per quello che è un problema misterioso e confuso!
Re: Col Median - cosa c'è che non va?Wow, scoperta importante!
Ad essere onesti, non sapevo che si debbano usare le parentesi - non avrei nemmeno scommesso che funzionasse.
Grazie mille, aggiungerò sicuramente un segnalibro per questo post al mio lista di suggerimenti e trucchi 
Re: Col Median - cosa c'è che non va?Non credo che il problema riguardi Substitute ma piuttosto qualcos'altro. Forse JMP non capisce che Col Median dovrebbe funzionare in questo caso poiché la sostituzione è un po' strana (mancano le parentesi). Ecco molto probabilmente il modo "corretto" per farlo (nota () Dopo Dividere e col Mediano ).
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 - cosa c'è che non va?Temevo che avrei avuto bisogno di alcune istruzioni If nidificate e molte volte lo stesso codice per farlo funzionare.
Soluzione alternativa molto interessante e "sporca" - grazie;)
... vorrei che uno non ne avesse bisogno:
correggere il bug in Substitute
modifica: non necessario
@giuliano : C'è un webinar che spiega perché il codice sopra funziona solo con a Analizza (carattere))?
Re: Col Median - cosa c'è che non va?Ho "risolto" questo tipo di problema in precedenza al lavoro, ma non ricordo più come e perché è successo. Inoltre non l'ho registrato nel mio elenco di suggerimenti e trucchi, quindi non riesco a trovare facilmente il ragionamento e la soluzione. La seconda espressione sembra bloccarsi se si trova all'interno di un'altra espressione se costruita in questo modo.
Una soluzione alternativa:
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 - cosa c'è che non va?Cosa c'è di sbagliato in questi:
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 - cosa c'è che non va?Molte grazie - 3 modi per risolvere il mio problema 
Solo tramite "OK" non ha funzionato.
Scavando più a fondo - perché è successo ...
C'è un motivo per cui miaFormula3 (con sostituzione di Testa E Aggregazione ) E miaFormula4 (con successiva sostituzione di Testa E Aggregazione ) non funzionano? miaFormula1 E miaFormula2 (solo sostituendo uno di entrambi) fare.
(lo stesso per Jmp 16.2 e Jmp 17)
nome Espr(miaFormulax) sembrano quasi uguali:
Nome Expr(myFormula1) = Divide(:height, Col Median(:height));
Nome Expr(myFormula2) = :altezza / Col Mediana(:altezza);
Nome Expr(myFormula3) = Divide(:height, Col Median(:height));
Nome Expr(myFormula4) = Divide(:height, Col Median(:height));
Sfortunatamente, prima di salvare e riaprire il file nessuna delle 3 soluzioni precedenti funziona 
Sarebbe bello se a Tabella dati corrente() << Riesegui formule; potrebbe risolvere il problema.
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 - cosa c'è che non va?Prova a tornare all'editor di formule e premi Applica. Oppure seleziona Sopprimi valutazione -> Applica -> deseleziona Sopprimi valutazione -> Applica di nuovo. Puoi anche provare Current Data Table() << Rerun formules.