Col Median (en realidad: Sustituto) - ¿Qué pasa?No entiendo qué le pasa a este archivo.
altura_rel y altura_rel 2 tienen exactamente la misma fórmula.
Pero en altura_rel 2 faltan los valores.
Antes de guardar el archivo, el editor de fórmulas se quejó de que había muy pocos argumentos en el Col mediana función
Se podría convencer al Editor de fórmulas de que todo está bien haciendo doble clic en el editor de fórmulas y luego cerrando todas las ventanas haciendo clic en Aceptar, Aceptar, Aceptar.
Después de guardar el archivo, esto no es posible. No encontré la manera de revivir la fórmula.
Si copia y pega la columna, el Copiar está bien
Fusión y limpieza de datosRe: Col Mediana - ¿Qué pasa?discusión comunitaria relacionada:
Fórmula creada dinámicamente que no evalúa
Re: Col Mediana - ¿Qué pasa?Solo para agregar un poco de misterio adicional, parece que solo una de las funciones sustituidas necesita incluir el "()", por lo que ambas fórmulas a continuación funcionarán.
Editar : Y luego de seguir investigando, parece que JMP tolerará solo 1 función en una expresión pasada sin el "()" en la sustitución. Tres fórmulas más están en la parte inferior donde envuelvo otra función alrededor de su expresión existente, y funcionará correctamente con dos funciones sustituidas con paréntesis. Sospecho que hay un pase interno que hace JMP para hacer inferencias sobre una expresión para que sea legal y solo hará un ajuste y luego se romperá.
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 Mediana - ¿Qué pasa?No conozco ningún seminario web que cubra eso (o incluso discuta este problema), pero es una solución inteligente para obligar a JMP a analizar esa expresión nuevamente. Estoy realmente impresionado con @jthi La solución más reciente de incluir el () en la sustitución, no hubiera imaginado que funcionaría, pero parece ayudar a JMP a reconocer que está pasando una función y maneja el resto. ¡Solución sorprendente e interesante a lo que es un problema misterioso y confuso!
Re: Col Mediana - ¿Qué pasa?¡Vaya, importante hallazgo!
Para ser honesto, no sabía que uno tiene que usar los corchetes, ni siquiera habría apostado a que funciona.
Muchas gracias, definitivamente agregaré un marcador para esta publicación a mi lista de trucos y consejos 
Re: Col Mediana - ¿Qué pasa?No creo que el problema sea con Substitute sino con otra cosa. Tal vez JMP no entienda que se supone que Col Median debe funcionar en este caso, ya que el reemplazo es un poco extraño (faltan corchetes). Esta es probablemente la forma "correcta" de hacer esto (nota () después Dividir y columna Mediana ).
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 Mediana - ¿Qué pasa?Temía que necesitaría algunas declaraciones If anidadas y muchas veces el mismo código nuevamente para que funcione.
Muy buena solución "sucia" - gracias;)
... Desearía que uno no lo necesitara:
arreglar el error en Sustituto
editar: no es necesario
@Julian : ¿Hay algún seminario web que explique por qué el código anterior solo funciona con un Analizar (Char))?
Re: Col Mediana - ¿Qué pasa?He "solucionado" este tipo de problema anteriormente en el trabajo, pero ya no puedo recordar cómo y por qué sucedió. Tampoco lo he registrado en mi lista de consejos y trucos, por lo que no puedo encontrar el razonamiento y la solución fácilmente. La segunda expresión parece atascarse si está dentro de otra expresión cuando se construye de esta manera.
Una solución:
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 Mediana - ¿Qué pasa?¿Qué hay de malo con estos:
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 Mediana - ¿Qué pasa?Muchas gracias - 3 formas de solucionar mi problema 
Solo a través de "OK" no funcionó.
Profundizando más: ¿por qué sucedió ...
¿Hay alguna razón por la cual miFórmula3 (con sustitución de Cabeza y Agregación ) y miFórmula4 (con posterior sustitución de Cabeza y Agregación ) no funciona? miFórmula1 y miFórmula2 (simplemente sustituyendo uno de los dos) do.
(lo mismo para Jmp 16.2 y Jmp 17)
nombre Expr(miFormulax) parecerse bastante:
Name Expr(myFormula1) = Divide(:height, Col Median(:height));
Name Expr(myFormula2) = :alto / Col Median(:alto);
Name Expr(myFormula3) = Divide(:height, Col Median(:height));
Name Expr(myFormula4) = Divide(:height, Col Median(:height));
Desafortunadamente, antes de guardar y volver a abrir el archivo, ninguna de las 3 soluciones anteriores funciona 
Sería bueno si un Tabla de datos actual () << Vuelva a ejecutar fórmulas; podría solucionar el 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 Mediana - ¿Qué pasa?Intente volver al editor de fórmulas y presione Aplicar. O marque Suprimir evaluación -> Aplicar -> desmarque Suprimir evaluación -> Aplicar de nuevo. También puede probar Current Data Table() << Volver a ejecutar fórmulas.