Configuración de una fórmula con un parámetroHola,
Estoy tratando de configurar una fórmula en una columna de una tabla junto con un parámetro en la fórmula. Es fácil de hacer con clics del ratón. Pero necesito escribir un guión. A continuación se muestra el comando que he escrito:
Columna (Tabla de datos ("field_data"), "Fórmula de predicción de diámetro") << Establecer fórmula (Parámetro ({tuning = 1}, eval (Nombre Expr (f11))));
Mi fórmula está almacenada en 'f11'. La fórmula cambiará, por lo que solo puedo referirme a ella usando una variable y no escribir la fórmula real. Cuando ejecuto esta línea, la fórmula se evalúa correctamente, pero cuando hago clic en la columna para verificar la fórmula, muestra " eval(Nombre Expr(f11)) ". ¿Hay alguna manera de poner la fórmula real aquí? Por favor ayuda. ¡¡Gracias!!
Re: Configurar una fórmula con un parámetroMuchas gracias Ian!! ¡¡Esto funciona!! 
Re: Configurar una fórmula con un parámetroJim ha mostrado cómo usar 'Sustituir()' para construir la expresión de la fórmula. Tenga en cuenta que, para ver cómo se ve la expresión requerida, siempre puede crear la columna de fórmula a mano y enviar a la columna resultante un mensaje 'getScript' o 'getFormula'. Así que puedes basarte en el ejemplo de Jim para obtener:
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
f11 = expr(:Height);
dt << New Column( "Column 6" );
Eval(
Substitute(
Expr(
:column 6 << set formula(tuning=2; :weight * __f11__ )
:column 6 << setFormula( Parameter( {b0 = initialValueTBD}, :weight * (__f11__ * b0) ) ),
),
Expr(initialValueTBD), 2,
Expr( __f11__ ), evalexpr(f11)
)
);
Re: Configurar una fórmula con un parámetroGracias txnelson. Lo siento, debería haberles dicho el próximo paso de mi análisis también por lo cual es importante para mí definir el parámetro de la manera que mencioné anteriormente.
Estoy realizando una regresión no lineal usando la columna con la fórmula (y el parámetro). Ahora, si defino el parámetro de la forma en que lo ha definido en su código, entonces la regresión no lineal no considerará el "ajuste" como un parámetro que tiene que optimizar. lo considerará como un Valor fijo.Entonces, no me dará el valor optimizado de "tuning". Por otro lado, si defino "ajuste" como parámetro, la regresión no lineal me dará el valor del parámetro "ajuste" que minimiza la suma de los cuadrados.
Entonces, hágame saber si hay alguna forma en que pueda definir el parámetro "ajuste" en la misma columna para que la regresión no lineal lo considere como un parámetro que debe optimizar y no como un valor fijo. ¡¡Gracias!!
Perdón por no haber sido claro antes.
Re: Configurar una fórmula con un parámetroUn parámetro simplemente establece un valor de variable de memoria en la fórmula, que se puede emular simplemente colocando ese código en la fórmula.Ver mi nueva variación en la fórmula
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
f11 = expr(:Height * tuning);
dt << New Column( "Column 6" );
Eval(
Substitute(
Expr(
:column 6 << set formula(tuning=2; :weight * __f11__ )
),
Expr( __f11__ ), evalexpr(f11)
)
);Re: Configurar una fórmula con un parámetroGracias txnelson, Entiendo tu código. Pero mi problema tiene 1 cosa adicional. Necesito establecer un parámetro en mi fórmula también. Déjame explicarte con la ayuda del código de ejemplo que has proporcionado. Se le asignó correctamente la fórmula en la columna 6. Ahora, después de esto, también necesito un script para hacer lo siguiente, que se puede hacer con clics del mouse de la siguiente manera:
1) Haga clic derecho en la columna 6. Vaya a "Fórmula.."
2) Seleccione "Parámetros" del menú desplegable (cerca de la esquina inferior izquierda)
3) Haga clic en "Nuevo parámetro"
4) Asignar un nombre y valor al parámetro
5) Haga clic en Aceptar
Por favor, hágamelo saber si esto se puede hacer. ¡¡Gracias!!
Re: Configurar una fórmula con un parámetroDebe forzar la evaluación en la fórmula, y he encontrado que la forma más fácil de hacerlo es usando Substitute()
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
f11 = ":Height";
dt << New Column( "Column 6" );
Eval(
Substitute(
Expr(
:column 6 << set formula( :weight * __f11__ )
),
Expr( __f11__ ), Parse( f11 )
)
);