¿Cómo coloco valores en las celdas de la tabla de datos usando JSL?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Soy relativamente nuevo en JSL, pero he estado escribiendo varios scripts para manejar procesos de generación de tablas y gráficos para probar que un producto de software que estamos produciendo informa correctamente los resultados. Uno de los problemas que tengo ahora es que tengo que crear un gráfico que muestre los tiempos informados (fácil) pero que también refleje los residuos del intervalo de tiempo de informes en intervalos de tiempo futuros.
Por ejemplo, necesito hacer un gráfico de tiempo de espera donde el eje x va desde medianoche hasta medianoche con intervalos de tiempo discretos de 15 minutos. Tengo un conjunto de datos que informa los tiempos de espera y clasifico la hora en que comienza la espera. Para simplificar, selecciono una fila donde se informa un tiempo de espera de 90 minutos para un agente que ingresa a una ubicación a las 9:05 a.m. El intervalo de tiempo para ese tiempo de espera es las 9:00 a. m.; el tiempo de espera de 90 minutos se informa y se muestra en el gráfico en el intervalo de tiempo de las 9:00 a. m. En un gráfico tradicional, todos los demás tiempos serían cero, ya que se excluyeron todos los demás datos, pero en realidad, el gráfico debería mostrar cuál es el tiempo de espera de ese agente en varios intervalos de tiempo hasta que el tiempo de espera sea cero; efectivamente, ¿cuál es la cantidad mínima de tiempo que la siguiente persona que ingresa a la ubicación puede esperar esperar si llega a la ubicación detrás del agente que espera durante cualquier intervalo de tiempo donde el agente actual todavía está en cola?
Entonces necesito crear una matriz de todos los tiempos con valores de cero en los intervalos de tiempo, excepto los que se enumeran a continuación.
Contenedor de tiempo Tiempo de espera
9:00 90 min
9:15 80 minutos
9:30 65 minutos
9:45 50 minutos
10:00 35 minutos
10:15 20 minutos
10:30 5 minutos
Ya tengo un script que genera las columnas para cada intervalo de tiempo después de la última columna de la tabla de datos, y descubrí que debido a la cantidad de condiciones involucradas y al hecho de que dónde, cuándo y con qué frecuencia ocurrirán tiempos de espera distintos de cero en cualquier fila dada de la matriz que usar fórmulas de columna sería demasiado complicada, si es que fuera factible. Así que esperaba que existiera algún método para completar celdas individuales de modo que pueda usar bucles anidados para recorrer cada fila de cada columna en la matriz y determinar qué valor de tiempo de espera se debe colocar allí.
Mi otra opción, que preferiría, sería crear una nueva tabla de datos que incluya registros secundarios para manejar los datos desbordados. Por ejemplo, un subconjunto de la tabla de datos son las siguientes cuatro filas:
| ID del agente | Ubicación | Día | Hora de entrada | Hora de salida | Tiempo mínimo de tránsito | Tiempo de espera | Contenedor de tiempo |
|---|
184 | Cola de salida | 1 | 7:10:24 a.m. | 7:10:24 a.m. | 0 | 0 | 7 A.M |
| 185 | Entrada FIS | 1 | 6:41:38 a.m. | 6:41:38 a.m. | 0 | 0 | 6:30 a.m. |
| 185 | Cola de visitantes | 1 | 6:41:38 a.m. | 7:00:51 a.m. | 0 | 1153 | 6:30 a.m. |
| 185 | Recogida de equipaje | 1 | 7:01:59 a.m. | 7:01:59 a.m. | 0 | 0 | 7 A.M |
El script escanearía cada fila de la tabla original y la copiaría en la nueva tabla de datos. En la tercera fila del ejemplo anterior, el tiempo total de espera, 1153 s, es mayor que el tiempo transcurrido esperando en el intervalo de tiempo de las 6:30 a. m.: intervalo de tiempo de las 6:45 a. m. - tiempo de entrada a la cola de las 6:41:38 a. m. - Tiempo de tránsito de cola de 0 s = 202 s de espera utilizados en el intervalo de tiempo de las 6:30 a. m. Entonces, la nueva tabla de datos agregaría filas secundarias, lo que daría como resultado que la región de la tabla de datos que se muestra arriba tenga el siguiente aspecto:
| ID del agente | Ubicación | Día | Hora de entrada | Hora de salida | Tiempo mínimo de tránsito | Tiempo de espera | Contenedor de tiempo |
|---|
| 184 | Cola de salida | 1 | 7:10:24 a.m. | 7:10:24 a.m. | 0 | 0 | 7 A.M |
| 185 | Entrada FIS | 1 | 6:41:38 a.m. | 6:41:38 a.m. | 0 | 0 | 6:30 a.m. |
| 185 | Cola de visitantes | 1 | 6:41:38 a.m. | 7:00:51 a.m. | 0 | 1153 | 6:30 a.m. |
| 185 | Cola de visitantes | 1 | 6:41:38 a.m. | 7:00:51 a.m. | 0 | 951 | 6:45 a.m. |
| 185 | Cola de visitantes | 1 | 6:41:38 a.m. | 7:00:51 a.m. | 0 | 51 | 7 A.M |
| 185 | Recogida de equipaje | 1 | 7:01:59 a.m. | 7:01:59 a.m. | 0 | 0 | 7 A.M |
Las filas en cursiva son las filas secundarias del Agente 185 en la Cola de visitantes que muestran los tiempos de espera restantes hasta que el Agente 185 ya no tenga que esperar en la Cola de visitantes. Luego podría usar esta tabla para generar el gráfico que necesito porque los registros secundarios proporcionarían los datos adicionales necesarios.
Si alguien puede proporcionar un método para cualquiera de estas soluciones, se lo agradecería mucho.
Re: ¿Cómo coloco valores en las celdas de una tabla de datos usando JSL?Gracias Ron.
Es bueno saber eso. Esas líneas parecían superfluas, pero como JSL es un lenguaje de secuencias de comandos y acabo de comenzar a crear mis propias secuencias de comandos, en realidad he estado usando las capacidades de secuencias de comandos de JMP durante algunos años, pero principalmente guardaba secuencias de comandos en una tabla de datos desde una plataforma. y realizar algunos ajustes cuando fuera necesario; no estaba seguro de si estaba haciendo o qué estaba haciendo en relación con la adición de filas. Al principio, tuve la descabellada suposición de que podría haber tenido algo que ver con el llenado previo de las filas, pero me di cuenta de que Agregar fila lo estaba haciendo de forma no documentada.
Hablando de eso, según la Guía de secuencias de comandos JMP, Agregar filas ( número ) agrega lo especificado número de filas, pero el bucle interno agrega una nueva fila a la vez según la duración del evento y copia los valores de las columnas en la fila de origen, contenida como una lista en Rowi , en la nueva fila. Felicitaciones a usted por descubrir esta capacidad indocumentada. Esta fue una de las razones por las que me quedé estancado, ya que tengo una considerable experiencia en programación y, a menudo, puedo descubrir un nuevo lenguaje siempre que la sintaxis esté bien documentada. Nada de lo que he encontrado en la documentación de JMP menciona que la función Agregar filas puede aceptar una variable que contiene la lista de valores de columna para una fila específica como parámetro.
Re: ¿Cómo coloco valores en las celdas de una tabla de datos usando JSL?hola médico,
Me alegra que mi guión te haya resultado útil. Cuando lo escribí, el complemento no estaba disponible.
con respecto a la z; Lo acabo de comprobar ahora y no es necesario. el bucle debería funcionar bien sin él. Solía pensar que tienes que tener la z en el bucle for para que cuente las veces que pasa.
al probar el script me ayudó a controlar su acción al tener el número del bucle disponible todo el tiempo.
Mejor,
Ron.
Re: ¿Cómo coloco valores en las celdas de una tabla de datos usando JSL?Pregunta.
En el bloque de código donde crea nuevas filas según la duración del evento,
Para ( i = 1 , i <= filaN , i ++,
Rowi = dt << obtener fila ( i ) ;
Para ( z = 1 , z <= ( : Nombre ( "Duración del evento" )[ i ] - 1 ) , z ++,
z ;
dt << añadir fila ( Rowi ) ;
dt << ejecutar fórmulas ;
) ;
) ;
¿Qué significa la línea que es justa? z ; ¿hacer?
Re: ¿Cómo coloco valores en las celdas de una tabla de datos usando JSL?Ron,
Gracias por la info. El complemento no funcionó para mí, pero revisar su código para el problema del diagrama de burbujas resolvió el problema que estaba teniendo. Me llevó todo el día crear el script que necesitaba, pero el código que proporcionaste para agregar filas secundarias para llenar los vacíos de datos me ayudó a completar lo que de otro modo habría permanecido sin salida durante bastante tiempo.
Re: ¿Cómo coloco valores en las celdas de una tabla de datos usando JSL?Hola md,
No estoy seguro de entender completamente tu pregunta, pero prueba estos dos enlaces:
1) Complemento de columna Expandir por frecuencia
2) diagramas de burbujas: intervalos de tiempo desiguales