Make the Answer Button (the red triangle) your friend.Make the Answer Button (the red triangle) your friend.Make the Answer Button (the red triangle) your friend.Make the Answer Button (the red triangle) your friend.Haz que el botón Responder (el triángulo rojo) sea tu amigo. Bienvenidos de nuevo a mi serie sobre los conceptos básicos de las secuencias de comandos en JMP . Esta es la tercera entrada en una serie que está estructurado para que usted pueda trabajar. Si acaba de unirse a nosotros, probablemente quiera echar un vistazo a las entradas anteriores de la serie. Aquí hay algunos enlaces a ellos:
Echar un vistazo; te ayudará con lo que se avecina.
Muy bien, abróchate el cinturón. Hasta ahora no hemos trabajado con ningún código (a menos que cuente el índice de secuencias de comandos JSL). Eso termina hoy. Hoy vamos a utilizar la ventana del script JSL. Sé que esto puede provocarles ansiedad a algunos de ustedes. Respiremos profundamente y hagámoslo.
¡No escribas guiones por escribir!
Seamos honestos en algo: la codificación no es un proceso eficiente a corto plazo. Para análisis y gráficos únicos, las herramientas de arrastrar y soltar casi siempre superarán a la codificación en términos de ROI (el costo de que alguien realice un ejercicio de desarrollo es demasiado alto). Hay quienes insisten en crear secuencias de comandos independientemente de si una solución GUI es más rápida. No sé por qué y no estoy entre ellos. Consideraré la codificación cuando un flujo de trabajo sea lo suficientemente difícil o complicado como para que el uso de una GUI presente una posibilidad significativa de errores en el futuro. También consideraré la codificación cuando vaya a hacer algo una y otra vez y pueda justificar el tiempo mediante la eficiencia que obtengo con la automatización. Eso no quiere decir que no codifique sólo para ver si puedo hacer algo. O que no elijo una forma más complicada de codificar sólo para aprender algo nuevo. Pero esos casos son la excepción y no la regla.
Ahora bien, probablemente les he pellizcado la nariz a algunas personas con esa generalización. El problema con este tipo de declaración general es que es bastante blanco y negro. La verdad, como todo en la vida, es que hay un área gris donde la propuesta de valor es una elección entre una solución de apuntar y hacer clic y la codificación. El área gris también es donde se encuentran la mayoría de los aspirantes a codificadores. Saben que probablemente puedan ganar algo de eficiencia a través de scripts, pero simplemente no saben por dónde empezar o les preocupa que el tiempo perdido en el esfuerzo de aprendizaje inicial sea demasiado grande. Lo bueno del diseño de JMP es que nos brinda herramientas que podemos usar para comenzar a introducir JSL en un flujo de trabajo sin perder demasiada eficiencia al manipular JSL. Y, como todo en JMP, comienza con El flujo de trabajo del JMP .
El flujo de trabajo JMP (edición de secuencias de comandos)
El flujo de trabajo JMP generalmente finaliza cuando un usuario accede a un menú de triángulo rojo para responder una pregunta. Otra función del menú del triángulo rojo es proporcionar métodos para que los usuarios guarden su trabajo (guardar scripts).

Hay tres formas principales de guardar scripts:
- A la tabla de datos : Este método guarda los scripts en la tabla de datos como "Scripts de tabla".Estos scripts guardan el método utilizado para generar un informe determinado en JMP y son portátiles (es decir, se pueden copiar y pegar entre tablas de datos con los mismos nombres de columna).
- A la ventana de secuencia de comandos : este método guarda la información necesaria para reproducir un informe determinado en una ventana de secuencia de comandos. Es útil para operaciones de varios pasos o para producir varios informes. El contenido de una ventana de script también se puede convertir en un script de tabla.
- Al portapapeles : Este método es útil para mover el código necesario para un informe a otra plataforma JMP (por ejemplo, Query Builder, Application Builder, etc.) o para generar código prototipo para proyectos más grandes.
Resulta que los codificadores realmente eficientes aprovecharán ampliamente estas opciones del triángulo rojo durante sus sesiones de codificación. Los usan para acelerar su codificación (¿por qué presionar teclas cuando no es necesario?) o generar código prototipo de plataforma que de otro modo sería fácil de estropear y difícil de depurar. Para los programadores principiantes, estas opciones brindan diferentes oportunidades para aprender y utilizar JSL mientras profundizan en los detalles del trabajo con él. Aquí es donde queremos comenzar nuestra aventura de codificación.
Guardar script > En tabla de datos
Si eres usuario de JMP en el área de Nueva York o Nueva Jersey: ¡Hola! Probablemente haya visitado su empresa en algún momento. (Si no, envíame un mensaje privado; tenemos que solucionarlo). Y, cuando visité el lugar, probablemente me habrás oído insistir en este punto: DEBES guardar tu trabajo, y por "guardar tu trabajo" me refiero a usar el Guardar secuencia de comandos... en la tabla de datos opción en el menú del triángulo rojo. Volviendo a mi primera experiencia con la automatización de un flujo de trabajo, así es como comencé: guardando un montón de informes estandarizados de Graph Builder en una tabla JMP que actualizaba periódicamente. No puedo enfatizar lo suficiente el poder de este pequeño consejo. Es como tener el destornillador sónico del Dr. Who. Las posibilidades son infinitas.
Veamos un ejemplo rápido:
- Abierto Ayuda > Biblioteca de datos de muestra > Big Class Families.jmp
- Abra un cuadro de diálogo de distribución: Analizar > Distribución
- Poner edad, sexo, altura y peso en Y, Columnas y haga clic DE ACUERDO .

- En el menú del triángulo rojo Distribuciones, seleccione Guardar script > En tabla de datos

- Dale un nombre (o simplemente usa el predeterminado). Si utiliza el valor predeterminado en este caso, aparecerá en la tabla de datos como Distribución 2 porque ya hay un Distribución script en la tabla de datos.

- Ahora mire nuevamente la tabla de datos en la esquina superior izquierda. Debería ver el script de su tabla en la lista con una marca de verificación verde al lado.

En el contexto de esta serie, esos scripts de tablas pueden considerarse como pequeños subprogramas (miniaplicaciones) o macros. Son directamente portátiles entre tablas de datos (solo copie y pegue), siempre que los nombres de las columnas utilizadas en el script sean los mismos . También se pueden editar (haga clic derecho en uno y seleccione Editar ). Por lo tanto, también son portátiles para tablas de datos que no tienen los mismos nombres de columna si está dispuesto a editar los nombres de las columnas en el script, lo cual no es gran cosa. Cubriremos cómo hacerlo en la próxima publicación. Los scripts de tabla también se pueden utilizar para encadenar scripts más pequeños para automatizar un flujo de trabajo más amplio. También cubriremos eso en la próxima publicación.
Guardar script > Al portapapeles
Vamos a cubrir la última entrada en el menú del triángulo rojo: al portapapeles artículo. Vamos a cubrir este a continuación porque la entrada es idéntica a la a la ventana de secuencia de comandos opción, pero mucho menos instructiva. Eso no quiere decir que no sea útil, sólo que no puedes ver lo que está pasando. Entonces, por razones de tiempo, esto es lo que hace. Toma el código creado por Guardar secuencia de comandos... en la tabla de datos y lo coloca en el portapapeles para que puedas colocarlo en otro script en alguna parte. Es útil. Y, a medida que crezcan sus habilidades con las secuencias de comandos, descubrirá dónde le resultan útiles. Por el momento, quiero retroceder a la opción más interesante y útil: guardar en una ventana de script.
Guardar script > En ventana de script
La siguiente entrada en el Guardar guión en… menú del triángulo rojo, cubriremos lo que probablemente sea el más instructivo de los tres que estoy analizando. Guardar un script en una ventana de script hace exactamente lo que dice: crea una ventana del Editor de scripts (profundizaremos en el Editor de scripts en el próximo episodio) y la llena con JSL generado por JMP para recrear lo que haya en el archivo. ventana desde la que estaba trabajando. El punto importante de esta entrada es que puedes estudiar el código y aprender de lo que generó JMP.
Veamos nuevamente un ejemplo trivial usando Big Class. Continúe y haga clic en el botón verde al lado de su secuencia de comandos guardada para volver a ejecutar el análisis. Luego, en la ventana del informe, seleccione Guardar script > En ventana de script en el menú del triángulo rojo. Ahora, mire lo que JMP ha escrito en la ventana Script.

JMP ha creado un Informe de Distribución: Distribución(…);. JMP ha incluido dos subgrupos de Distribución Nominal en el informe: Distribución Nominal (Columna(...)) y dos subgrupos de Distribución Continua: Distribución Continua(Columna(...)). Al final del script, JMP ha puesto un código increíblemente importante: el “;”. Se llama "Operador de pegamento" y lo cubriremos con más detalle en el próximo episodio. Por ahora, sólo necesita saber que es una forma de indicarle a JMP, cuando está ejecutando el código, que viene otra instrucción. El hecho de que JMP ponga eso al final automáticamente hace que la vida del guionista novato sea mucho menos complicada.
El último punto que hace que esta entrada sea tan útil es lo que sucede si deja abierta la ventana del script. Continúe y cierre la plataforma de distribución, pero deje abierto el editor de secuencias de comandos. Ahora, usando la tabla de datos abiertos, cree un informe Ajustar Y por X (en Analizar) usando Altura como variable X y Peso como variable Y.

A continuación, seleccione Guardar secuencia de comandos en la ventana de secuencia de comandos de nuevo.

¿Notaste cómo la ventana se actualizó con otra entrada? Ese script ahora recreará las dos ventanas con las que estaba trabajando, una vez que sepa cómo ejecutar una. Hablando de que…
Ejecución de scripts
Entonces, tienes algo de código en una ventana de script, ¿ahora qué? Probablemente quieras poder ejecutar el código que has creado. Quiero decir, podrías dejarlo para impresionar a las personas que pasan por tu escritorio, pero probablemente sea mejor ejecutarlo. Hay algunas formas de ejecutar código en JMP: el menú principal, los atajos de teclado, las barras de herramientas en la parte superior de la ventana de secuencias de comandos, la tecla Intro o simplemente haciendo clic derecho. Repasemos rápidamente cada uno de estos.
El menú principal y los atajos de teclado.
El Ejecutar guión El comando está en el mismo lugar en Windows y MacOS. Si estás en una ventana de secuencias de comandos, ve a Editar > Ejecutar script . La tecla de acceso rápido para esto es CTRL+R para ventanas y CMD+R para MacOS.
El botón de la barra de herramientas en la parte superior de la ventana de secuencias de comandos.
Si miras la parte superior de la ventana del script, deberías encontrar un Ejecutar guión (a menos que tengas las barras de herramientas ocultas). En Windows, parece un pequeño botón de reproducción verde, similar a los de los scripts de tabla. En MacOS, parece un pequeño documento JSL con un JMP Man y el botón verde de reproducción.
Usando la tecla Intro
Tenga en cuenta que me refiero al botón en la parte inferior derecha del teclado numérico en un teclado extendido. Si presiona ese botón, JMP ejecutará la línea de JSL donde se encuentra el cursor. Utilicé este mucho antes de sentirme cómodo con el depurador JSL.
Hacer clic derecho
Al seleccionar algún código y hacer clic derecho, aparecerá un menú contextual que tiene un Ejecutar guión opción hacia la parte inferior.
Te recomiendo que pruebes las diferentes formas de ejecutar scripts y encuentres la que más te guste. Soy partidario de las teclas de acceso rápido, excepto cuando estoy en Application Builder, donde prefiero usar las opciones de la barra de herramientas. Con el tiempo, probablemente gravitarás hacia uno o dos que se convertirán en tus favoritos. Además, como nota al margen: todas estas opciones hacen cosas ligeramente diferentes dependiendo de si tiene una sección de código seleccionada, su cursor está al final de una línea o su cursor está en una línea en blanco. Quizás quieras experimentar un poco con eso también.
Terminando esta semana
Muy bien, lo creas o no, ahora tienes suficiente información para ser increíblemente peligroso con JSL... en el buen sentido, por supuesto. Déjame mostrarte lo que quiero decir.
Usemos ese script que creamos hoy. Voy a hacer un pequeño ajuste ajustando una Nueva ventana(); Función en torno a la distribución y funciones bivariadas creadas por JMP. Puede obtener más información sobre Nueva ventana(…); en el índice de secuencias de comandos. Tenga en cuenta que la primera parte de Nueva ventana(…); ¡comienza en la línea 1 y la última parte está en la línea 10! Tengo mi editor de secuencias de comandos configurado para dibujar una pequeña línea que los conecte para poder ver dónde están (más sobre esto más adelante).

Luego, copiemos el texto de ese script y volvamos a la tabla de datos. Seleccionar Nuevo guión desde el menú del triángulo rojo en la esquina superior izquierda de la tabla de datos.

Pegue el texto del script en el cuadro de diálogo, asígnele un nombre útil y haga clic en DE ACUERDO .

Si está siguiendo las instrucciones, debería ver su informe en el área de secuencia de comandos de la tabla de datos. Si lo ejecutas, deberías obtener algo como esto:

Y ese es el pequeño truco que utilicé para convertir un maratón analítico de dos días en un ejercicio de 15 minutos de cortar y pegar. Dediqué un poco de tiempo a introducir los datos en una tabla de datos JMP que podía actualizar fácilmente. Luego exporté todos los gráficos que necesitaba para ese informe a una única ventana JSL usando Guardar secuencia de comandos en la ventana de secuencia de comandos . Los envolví en una nueva ventana (para que estuvieran todos en un solo lugar) y puse ese script en un Table Script en la tabla de datos. ¿Estaba trabajando con JSL? Sí. ¿Estaba escribiendo mucho código? No. ¿Aumenté mi eficiencia? Definitivamente.
Ahora que estamos entrando en la codificación real, necesito enfatizar este último punto. Codificar se trata de aumentar tu eficiencia :
- Qué tan eficientemente puedes resolver problemas.
- Qué tan eficientemente puede crear informes (para que pueda volver a resolver problemas).
- Qué tan eficientemente puedes trabajar con tus datos.
El código que vamos a crear en esta serie se genera por computadora o es simple. Y eso está bien. Se trata de eficiente código no sexy código. Cuando estaba en la universidad, uno de mis profesores (un compañero músico) tenía una cita en la pared fuera de su oficina: La música simple no es mejor ni peor que la música compleja. Lo mismo ocurre con el código. Me recordó esto hace un tiempo la persona que me enseñó a codificar. Así que recuerda: El código simple no es mejor ni peor que el código complejo. Lo único que importa es que cumpla con el propósito previsto y aumente la eficiencia o productividad de quienes lo utilizan.
Tarea
Para el ejercicio de esta semana, revisará el planteamiento de su problema. Piense en la lista de tareas pendientes que creó y genere código utilizando los flujos de trabajo que cubrimos hoy. El código puede ser el código real que va a utilizar o el código prototipo que cree que necesitará modificar un poco para responder al planteamiento de su problema. Intente generar tantos fragmentos como crea que necesitará usando el menú del triángulo rojo y guárdelos como archivos .jsl. Si se queda atascado o no puede encontrar una manera de hacer que JMP genere el código que necesita, busque ayuda, ya sea en la Comunidad o en los comentarios aquí. ¡No olvides buscar en la Ayuda y no olvides que también puedes buscar en la Comunidad!
Hasta la próxima, ¡buena suerte y feliz codificación!