Guiones de tabla?Definitivamente podría ser un caso de RTFM, pero tengo una pregunta:
En uno de mis conjuntos de datos JMP, uso una función como intermedia en varias columnas de fórmula. Para evitar la duplicación del mismo código (y la duplicación del trabajo si tuviera que cambiar esa función), puse la función en un script y la guardé en la tabla de datos.
El problema surge cuando abro el conjunto de datos y quiero agregar datos. Para que las columnas de fórmula se ejecuten correctamente, primero tengo que presionar la flecha verde al lado del script para ejecutarlo primero antes de que las columnas de fórmula puedan hacer su trabajo. Si el script no se ejecuta, la función no está definida.
¿Hay alguna manera de promulgar funciones como estas en forma similar a las Variables de tabla, que se ejecutan automáticamente al abrir el archivo de datos?
editar: adjunto un archivo de ejemplo. El script está en el script de Funciones de utilidad.
Re: ¿Guiones de tabla?Vea si el script OnOpen satisface sus necesidades; se le preguntará (por defecto). Puede cambiar la preferencia si es necesario. Tenga en cuenta que el script OnOpen NO se ejecuta cuando se ejecuta el siguiente script, pero si guarda la tabla vacía, la cierra y la abre de nuevo, se ejecutará el script. Luego, agregar filas a la tabla recién abierta podrá utilizar la función global.
New Table( "globalFunctionOnOpen",
Add Rows( 0 ),
New Script( "OnOpen", global:myFunc = Function( {a, b}, a + b ) ),
New Column( "x", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [] ) ),
New Column( "y", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [] ) ),
New Column( "z", Numeric, "Continuous", Format( "Best", 12 ), Formula( global:myfunc( :x, :y ) ), Set Selected )
)Re: ¿Guiones de tabla? @robhanssen ,
A continuación hay un par de opciones a considerar. La que podría ser la mejor opción depende del uso.
- Refactor: Para este ejemplo, la función de utilidad simple se puede lograr con una columna que llamaré MTD. La función devuelve un 1 o 0. Luego cambie sus funciones: cambie yearToDate (: mes,: Elec Cost) para que sea: MTD *: ElecCost. En otras palabras, use funciones de columna, cuando sea posible.
- Hacer un complemento : algo que es específico para la tabla, llamado UpdateMyTablename, o un script que ejecuta todas sus funciones de utilidad, llamado RunUtiltyFunc. Tenga en cuenta que un complemento puede ser compartido y utilizado por otros usuarios y ejecutarse bajo demanda, y las funciones estarán disponibles durante todas las sesiones a menos que se eliminen los globales.
- Crear una secuencia de comandos de inicio : Si tiene un conjunto de funciones de utilidad que puede usar con frecuencia, puede definirlas / incluirlas / ejecutarlas mediante un script de inicio. Los ejemplos que he usado incluyen: una definición de turno específica de fabricación corporativa, función de semana laboral, logotipo o función matemática de uso común. Desde el Guía de secuencias de comandos JMP> Crear aplicaciones > Complementos
Especificar guiones de inicio y salida (opcional)
Haga clic en la pestaña Script de inicio para agregar un script que se ejecute cuando se inicie JMP (y el complemento
empieza). Puede seleccionar un script existente (Ejecutar JSL en este archivo) o copiar y pegar en un script (Ejecutar
este JSL). Por ejemplo, puede proporcionar un mensaje que le indique al usuario que el complemento es
instalado al inicio.