
Esta demostración ilustrará cómo administrar columnas de datos y filas de tablas de datos. Usaré un script para crear una nueva tabla de datos con una columna inicial. En la sección "Diario del curso", haré clic en "Crear nueva tabla y columna de datos". Como pueden ver, usaremos la función "nueva tabla". Almacenaremos la referencia al objeto de la tabla de datos que esto crea en la variable "dt". La tabla se llamará "Datos de prueba". Tendré una sola columna llamada pH. El tipo de dato será numérico y el tipo de modelado será continuo. Usaré el argumento "valores", que también se llama "valores establecidos" (ambos sinónimos) para rellenar la tabla con el operador de índice, un operador infijo. Contaremos del uno al siete en incrementos de uno. Dado que introduzco esos valores, ese es el número de filas que tendrá la tabla de datos. Hay un argumento opcional para agregar un número específico de filas que podría usar si no estuviera completando valores inicialmente. Y también verá si tiene JMP escribiendo un script para una tabla de datos para usted con ese mensaje de script get, que incluirá el argumento para agregar las filas. También especificaremos un formato usando el argumento decimal fijo con un campo con y tres decimales. Vamos a activar la opción de bloqueo en la columna para que no se pueda modificar sin desbloquearla. Y usaremos el argumento de verificación de rango para asignar esa propiedad de columna. Y la sintaxis aquí LELE () solo dice que es menor o igual que el valor en la columna es menor o igual a Y luego, por último, tenemos un ejemplo del argumento de propiedad establecida, donde estamos configurando la propiedad de los límites de especificación. Y como hay más de una opción para indicar los límites de especificación, tenemos una lista de los tres límites: el límite de especificación inferior, el límite de especificación superior y el objetivo. Y recuerda también que todos estos argumentos opcionales para la nueva columna podrían enviarse como mensajes a la columna después de su creación o, como vemos aquí, como argumentos para la nueva columna. Así que voy a ejecutar el script. En el registro a continuación, puedes ver que hemos creado esta instancia de un objeto de tabla de datos llamado "datos de prueba". Y, por supuesto, esto es lo que vería si pasara el cursor sobre la variable "dt" en mi script. Tengo la tabla de datos con una sola columna y siete filas. Y podemos ver todos los elementos del script indicados en la propia tabla. Por ejemplo, sé que el tipo de dato es numérico porque puedo ver que el icono de tipo de modelado indica que es continuo. Y el tipo de modelado continuo solo acepta datos numéricos. Además, los valores numéricos se justifican a la derecha. Si los números se trataran como caracteres, se justificarían a la izquierda. Si observamos los iconos en el panel de columnas, está el icono del candado, que indica que bloqueé la columna. La pequeña marca de verificación indica la comprobación de rango. El asterisco indica cualquier número de propiedades adicionales que no tienen sus propios símbolos únicos. Para acceder al cuadro de diálogo de información de la columna, por supuesto, hay varias maneras. Podemos tomar un atajo haciendo clic en este asterisco. Vemos que la propiedad es "spec limits". Es posible que haya más de una propiedad en este menú desplegable. Puedo seleccionarla. Esto me lleva a la información de la columna. También podemos seleccionar la columna y usar el menú de columnas o hacer clic derecho en ella y seleccionar "column info". Así que están los spec limits con los valores indicados en el argumento de la propiedad establecida. También tenemos la comprobación de rango. Y, de nuevo, es "menor o igual que", "menor o igual que" (LELE se indica en la sintaxis genérica) y luego tenemos los valores reales. Aquí podemos ver que la columna ha sido bloqueada. El tipo de dato es numérico. El tipo de modelado es continuo. Y el formato es decimal fijo con el ancho de campo que es el número máximo de caracteres que se pueden mostrar en la columna y tres decimales. Así que voy a cancelar el diálogo de información de la columna. Y seguiré adelante y deseleccionaré esa columna de pH. Ahora, hay una opción en el menú desplegable de propiedades de columna para configurar tu propia propiedad de columna de usuario. Y si lo haces interactivamente, la opción del menú se llama simplemente Otro. Y le das un nombre a la propiedad y el valor que va a tomar. Tengo un script en el diario llamado Agregar propiedad de columna de usuario. Y estamos enviando esto a la columna de pH. Esta columna de usuario correctamente se llamará Calibración del medidor. Y solo quiero poner la fecha de hoy formateada como una cadena de caracteres de mes, día, año. Y entonces el texto aquí, el segundo argumento para configurar la propiedad, en este caso, uso la función Hoy para recuperar el número de segundos desde la medianoche de enero en el momento en que ejecuto esta línea de código. Lo envuelvo en la función de formato y especifico el formato de cadena de caracteres que quiero que se muestre. Y nuevamente, esto puede ser un proceso de prueba y error cuando estás escribiendo un script. Si simplemente proporcionara lo que he resaltado (y creo que podría haberlo hecho), sí. Quería asegurarme de haber especificado el número correcto de paréntesis. Ejecuto lo que acabo de resaltar. Lo selecciono y presiono Ctrl+R. Veo que la cadena de caracteres aparece exactamente como quiero en el registro. Podría ejecutar este mensaje de configuración de propiedad, este código con el mensaje de propiedad, sin la función eval inicialmente. Si lo hiciera, lo que vería al consultar la información de la columna para la propiedad de calibración del medidor sería literalmente el código. No se evaluaría. Por lo tanto, la configuración de propiedad podría no evaluar su segundo argumento, lo que nos obligaría a incluirlo en la función eval. Ahora bien, al ejecutarlo fuera del mensaje de configuración de propiedad, esto simplemente... permítanme ejecutarlo... devolverá exactamente lo mismo. Podría ser que inicialmente solo tuviera el formato de la función Today y luego descubriera que no devolvió lo que quería en las propiedades de la columna. Y entonces se daría cuenta de que necesitaba agregar esa función eval. Así que no voy a tener nada de esto seleccionado y voy a ejecutar este script. El mensaje que recibo aquí en el registro es simplemente programable. Significa que hice algo programable. Así que, a veces, al ejecutar código, lo que se espera que suceda no sucede. Y podría aparecer este mensaje programable. Entonces, debes intentar averiguar qué falló en ese caso, porque la palabra "scriptable" no proporciona información. Pero en nuestro caso, pasemos a la tabla. De nuevo, podemos acceder a la información de la columna haciendo clic en este asterisco. Lo hago así para mostrar que ahora tenemos otro elemento en ese menú. De nuevo, cualquier propiedad de columna que no tenga sus propios iconos únicos aparecerá en este menú de asterisco. Haré clic en Calibración del medidor para que, cuando se abra el cuadro de diálogo de información de la columna, esa sea la propiedad seleccionada. Y ahí está el resultado evaluado de usar la función Hoy y formatearlo como una cadena de caracteres. Así que lo cancelaré. Voy a usar la propiedad "Añadir columna de usuario" en la ventana del editor de scripts para experimentar un poco más con esta tabla. Ya no necesita ser tan ancha. Ahora quiero enviar una nueva columna como mensaje a la tabla de datos. Llamaré a esa nueva columna "Hydronium". Agregaré una fórmula después de crearla. Claro que podría agregar la fórmula como parte de la creación de la columna. También almacenaré la referencia al objeto de columna resultante del código en una variable. La llamaré HYD (hyd de hidronium). Asignaré ese resultado al enviar un mensaje a "dt", ya que ahí almacenamos la referencia al objeto de datos de prueba. Envío el mensaje a "dt new column" y luego abro paréntesis y una cadena de caracteres. El único argumento requerido para "new column" es el nombre de la columna, "Hydronium". Y lo ejecutaré. Almacenar el resultado en esta variable significa que no necesito escribir el nombre completo de "Hydronium". Así que no tuve que almacenar esa referencia de objeto. Todavía puedo comunicarme con la columna. Pero esto me ahorra un poco de escritura para haberle dado ese nombre abreviado. Ahora, supongamos, como mencioné, que quiero agregar una fórmula a esta columna. Así que simplemente iré a una nueva línea. Y quiero tener cuidado de no ejecutar accidentalmente todo el script de nuevo y crear una segunda columna Hydronium. Así que voy a comentar esta primera línea. Y voy a enviar un mensaje a esa variable hyd. Y el mensaje es set formula. Y la fórmula voy a elevarla a la potencia del pH negativo, así que elevar a-- y luego abriré paréntesis--- y usaré el operador de alcance de dos puntos porque me estoy refiriendo a la columna pH, por si acaso hay alguna otra variable llamada ph flotando en mi espacio de nombres global. No estoy usando Nombres Predeterminados Aquí, aunque, en la práctica, lo recomendaríamos como una mejor práctica. Así que voy a escribir ese punto y coma y ejecutar esta línea del script. Nuevamente, vemos el mensaje del script en el registro. Pero podemos examinar la tabla y ver que esos valores se han rellenado. Hay un par de cosas más para experimentar trabajando con nuestras columnas y filas. Supongamos que quiero colorear celdas en una tabla de datos para marcar valores que exceden cierto número. Así que voy a ir a una nueva fila en la ventana del Editor de scripts. Voy a crear una variable llamada callout. Y asignaré que el resultado de la tabla de datos almacenada en dt recibe el mensaje get rows where. Y luego mi comparación booleana será que los valores en la columna pH son mayores que Así que ejecutaré solo esa línea. Y puedes ver que rows y get rows where me devuelven un vector de columna de números de fila. Y luego voy a enviar un mensaje a pH. Y como esa referencia al objeto de columna no está almacenada en una variable, solo me referiré a ella por su nombre. Así que pH va a recibir el mensaje color cells. Este es otro mensaje que podemos enviar a una columna. Usaré el nombre del color como primer argumento. También hay valores de índice y se pueden usar los valores RGB. Usaré el nombre como una cadena de caracteres. Colorearé esas celdas en rojo. El segundo argumento es: ¿qué celdas quieres colorear? Puedes colorear toda la columna o proporcionar los números de fila. Usaré la variable "Callout", que almacena las filas donde el pH es mayor que tres. Ejecutaré solo esa línea. Por cierto, fíjate que olvidé poner un punto y coma. Esto ilustra que el punto y coma final no es necesario. Solo se usa cuando se añaden argumentos adicionales. Si observamos la tabla de datos, podemos ver que esas cuatro celdas se han coloreado en rojo. Esto podría ser útil si tienes una tabla de datos grande y quizás tengas límites de especificación en algunas columnas. Podrías colorear las celdas según los límites de especificación para los elementos fuera de especificación, por ejemplo, para que se marquen visualmente en la tabla de datos incluso antes de empezar a ver los gráficos. No es necesario colorear las celdas, pero es una opción que se puede usar. En esta demostración, vimos un ejemplo de cómo crear una nueva tabla de datos con una columna, agregar una columna a esa tabla y experimentar un poco con algunas de las cosas que podemos hacer con nuestras columnas y filas.
Intenté ejecutar Set Property sin "Eval", todavía funciona. (Actualmente usando JMP 16.2)
:pH << Set Property( "Meter Calibration2", Format( Today(), "m/d/y" ) );
