Cómo modificar un DisplayBox existente con JSL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Estoy intentando crear un botón que modificará la salida del cuadro de diálogo Ajustar modelo() para incluir un R2 previsto en la tabla Resumen de ajuste.Tomo la ventana actual y luego necesito activar la estadística PRENSA.Después de esto, es bastante sencillo y funciona principalmente si ya he activado la estadística PRENSA a través del menú del concurso.También funciona si codifico el cuadro de diálogo Ajustar modelo yo mismo y uso la línea dos para activar la estadística PRESS y luego la envío al informe.El problema con el que me estoy encontrando es que al tomar la ventana actual() se toma un DisplayBox sin forma de indicarle a la plataforma que haga cosas.Consideré simplemente tomar el script para crear la ventana, cerrar el original y ejecutar uno nuevo (un parpadeo rápido de la pantalla no es tan malo), pero << Get Script devuelve la estructura de árbol, no el script Fit Model().¿Hay algo fácil que me estoy perdiendo?Estoy escribiendo esto en JMP 9, si eso ayuda.Espero que sea compatible con JMP 8, pero eso no es importante.¡Gracias!
dg = Current Window();dg << PRESS; /###/press = dg[NumberColBox("Press RMSE")] << Get as Matrix;press = press[1];ss = dg[NumberColBox("Sum of Squares")] << Get as Matrix;lastrow = Nrow(ss);sst = ss[lastrow];predR = 1-press/sst;values = dg[NumberColBox(1)] << Get as Matrix;newvalues = J(1,6);newvalues[1::2] = values[1::2];newvalues[3] = predR;newvalues[4::6] = values[3::5];dg[StringColBox(1)] << Set Values({"RSquare","RSquare Adj","RSquare Pred","Root Mean Square Error","Mean of Response","Observations (or Sum Wgts)"});dg[NumberColBox(1)] << Set Values(newvalues);Re: Cómo modificar un DisplayBox existente con JSLMS: ¡Get Scriptable Object resuelve el problema perfectamente!Veo que tener un "grupo" podría causar problemas, pero no creo que sea un problema real dado el tipo de trabajo que hacemos aquí.¡Muchas gracias por llevarme a la solución!
dg = Current Window();fm = dg[OutlineBox(1)] << Get Scriptable Object;fm << PRESS(1);press = dg[NumberColBox("Press")] << Get as Matrix;press = press[1];ss = dg[NumberColBox("Sum of Squares")] << Get as Matrix;lastrow = Nrow(ss);sst = ss[lastrow];Re: Cómo modificar un DisplayBox existente con JSLOK veo. La razón por la que <
Me tomó un tiempo descubrirlo, pero el siguiente enfoque, usando <
dt = Abierto ( "$ENGLISH_SAMPLE_DATA/Gran Clase.jmp" ) ;
Modelo de ajuste (
Y ( : peso ) ,
Efectos ( : altura ) ,
Personalidad ( Mínimos cuadrados estándar ) ,
Énfasis ( Informe mínimo ) , Correr
) ;
adaptar = Ventana ( "Gran clase: ajustar mínimos cuadrados" )[ cuadro de esquema ( 1 )] << obtener objeto programable ;
adaptar << Prensa ( 1 ) ;
imprimir ( adaptar << obtener guión ) // ¡Get Script funciona como se esperaba!
Cómo modificar un DisplayBox existente con JSLMS: ¡gracias por tu rápida respuesta!El problema es que para que esto se implemente de la manera que quiero, no puede incluir la parte siguiente.
fit = Fit Model( Y( :ABRASION ), Effects( :SILICA, :SILANE ), Personality( Standard Least Squares ), Emphasis( Minimal Report ), Run( :ABRASION << {Plot Actual by Predicted( 0 ), Plot Regression( 0 ), Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )} ));dg = Report( fit );
Quiero poder implementar esto como un complemento para que los usuarios finales simplemente puedan presionar desde su barra de herramientas después de haber ajustado un modelo usando la interfaz JMP típica y agregar la información importante.
Lo que me confunde es que no puedo, a través de JSL, acceder al menú contextual de la ventana si JMP lo creó en lugar de JSL.Puedo acceder fácilmente a los menús de nivel superior a través de JSL, pero no al menú contextual.Además, no entiendo por qué el mensaje << Obtener script devuelve la estructura de árbol de la ventana en lugar de un script JSL para crearlo como lo proporciona el menú contextual.Sé que JMP puede hacer las cosas que quiero, pero parece que JSL no me permite acceder a ellas.
Cómo modificar un DisplayBox existente con JSLNo estoy seguro de qué está intentando hacer exactamente, pero creo que debe enviar el mensaje Press(1) a un objeto Ajustar modelo en lugar de a un objeto Ventana. Como en el siguiente ejemplo (Ejecutar y luego hacer clic en "PRESIONAR"). Funciona en JMP9 (Mac).
dt = Abierto ( "$English_Sample_Data/Tiretread.jmp" ) ;
adaptar = Modelo de ajuste (
Y ( : ABRASIÓN ) ,
Efectos ( : SÍLICE , : SILANO ) ,
Personalidad ( Mínimos cuadrados estándar ) ,
Énfasis ( Informe mínimo ) ,
Correr (
: ABRASIÓN << { Gráfico real por previsto ( 0 ) , Trazar regresión ( 0 ) , Trazar residual según lo previsto ( 0 ) ,
Apalancamiento del efecto de la trama ( 0 )}
)
) ;
dg = Informe ( adaptar ) ;
dg << anteponer (
Caja de botones ( "PRENSA" ,
adaptar << prensa ( 1 ) ;
prensa = dg [ Número de cuadro de color ( "Presione RMSE" )] << Obtener como matriz ;
prensa = prensa [ 1 ] ;
ss = dg [ Número de cuadro de color ( "Suma de cuadrados" )] << Obtener como matriz ;
última fila = N fila ( ss ) ;
sst = ss [ última fila ] ;
predR = 1 - prensa / sst ;
valores = dg [ Número de cuadro de color ( 1 )] << Obtener como matriz ;
nuevos valores = j ( 1 , 6 ) ;
nuevos valores [ 1 :: 2 ] = valores [ 1 :: 2 ] ;
nuevos valores [ 6 ] = predR ;
nuevos valores [ 3 :: 5 ] = valores [ 3 :: 5 ] ;
dg [ Caja de columna de cadena ( 1 )] << Agregar elemento ( "RSquare Pred" ) ; // Agregar valores no funciona, de ahí el reordenamiento
dg [ Número de cuadro de color ( 1 )] << Establecer valores ( nuevos valores ) ;
)
) ;
Cómo modificar un DisplayBox existente con JSLPara que quede claro, la primera línea, dg = Current Window(); devuelve DisplayBox[] en el registro.Estoy buscando una manera de acceder a los menús contextuales en la ventana a través de JSL para agregar cosas a la estructura de árbol para poder tomarlas más adelante, específicamente, cómo marcar PRESS(1).¡Gracias!
Re: Cómo modificar un DisplayBox existente con JSLEstaba intentando diseñar un script para guardarlo en la ventana de script para una ventana abierta de Fit Group. En otras palabras, un guión para capturar un guión. Para hacer esto, necesito crear un grupo de ajuste y un objeto y enviarle un mensaje. Fácil de hacer manualmente, ¿es posible automatizarlo?