Hola a todos. Bienvenidos a esta presentación sobre el uso de apuntar y hacer clic, así como sobre habilidades básicas de descifrado de código para importar datos complejos. Hoy me acompaña mi colega Wendy Tseng. Ambas somos ingenieras de sistemas en JMP. Mi nombre es Monique Roerdink Lander.
Hablaremos sobre la importación de datos complejos, lo cual surgió a raíz de varios desafíos que enfrenté durante mi trabajo en I+D. Hoy analizaremos tres ejemplos relacionados con la importación de múltiples datos, imágenes, tablas de datos de sitios web o páginas PDF.
Todas estas son fuentes de datos complejas y podrían estar diseñadas para complementar otros tipos de datos, como datos experimentales. Cuando me enfrenté a estos desafíos, al principio no dominaba la programación de scripts. Aprendí a manejarlos, pero no todos tienen el tiempo o el interés de aprender JSL.
Esto significa que puede resultar difícil importar este tipo de datos de forma eficiente, y es posible que se desista de todo por falta de tiempo. No tiene por qué ser difícil, especialmente con la introducción del Generador de Flujos de Trabajo de JMP, introducido en JMP 17, y con funciones extendidas más importantes añadidas en JMP 18.
Hoy vamos a mostrar cómo automatizar la importación de este tipo de datos. Usaremos Workflow Builder y no usaremos código, sino JSL directamente. Haremos un poco de descifrado de JSL, o descifrado de código, como lo llamamos. Supondremos que tienes conocimientos básicos de Workflow Builder; si no, te lo explicaremos a fondo. Hoy tenemos tres ejemplos. En el primero, mi compañera Wendy abordará la automatización de la importación de imágenes a una tabla de datos.
Esto es algo que tengo que hacer. Tendría que hacer mucho. Trabajé en formulación de detergentes y realizaba pruebas de desgaste y lavado en vasos, y terminaba con cientos de fotos de vasos. Quería tener estas fotos en mi tabla de datos para vincularlas con los datos del análisis de imágenes.
Para mí, eso fue bastante complicado en aquel momento. Wendy nos mostrará cómo hacerlo eficientemente. Después de ese ejemplo, en el segundo, les explicaré cómo optimizar la importación y la limpieza de archivos PDF. Finalmente, Wendy nos explicará cómo importar datos desde un sitio web. Dicho esto, le cedo la palabra a Wendy.
Gracias, Monique. En este primer ejemplo, te mostraré cómo incorporar imágenes para mejorar la comprensión y la comunicación de datos. Veamos de qué estamos hablando. En lugar de gafas, veremos fotos de perros.
Este conjunto de datos que ven contiene fotos de perros en esta columna. Tengo 28 filas con 28 fotos de perros. Estas fotos se han combinado con un conjunto de datos públicos del American Kennel Club, donde tenemos información diversa sobre perros, como la frecuencia de acicalamiento y la muda de pelo.
Luego, analizaremos su comportamiento. Aquí hay un gráfico que muestra la popularidad y el comportamiento del perro. Si paso el cursor sobre un punto específico, aparece una imagen de ese perro. Aquí está el Affenpinscher. Es un ejemplo divertido, pero realmente ilustra lo que vemos en los datos. ¿Cómo reuní estos datos? Bueno, como mencioné, existe un conjunto de datos público, el American Kennel Club, y capturé estas imágenes en una carpeta y las uní.
Vamos a analizar esto y, primero, permítanme ampliar la vista para ofrecerles una vista previa de lo que verán en este primer ejemplo. Comenzaré presentando la importación de múltiples archivos para importar imágenes a una carpeta fácilmente. Luego, verán Workflow Builder en acción para tomar esas imágenes, combinarlas con un conjunto de datos de AKC y crear una imagen. Veremos algunas evoluciones de este ejemplo, de simple a complejo.
En la última iteración, verás cómo usar JSL personalizado para crear un mensaje de usuario en el Generador de Flujos de Trabajo. Primero, veamos cómo importar varios archivos para importar imágenes. Tengo una carpeta llamada AKC que contiene fotos de perros. También contiene otros archivos, principalmente fotos de perros, y puedes ver que las fotos de perros tienen el nombre de la raza. Esto es importante porque lo usaremos para unirnos al conjunto de datos de AKC, que también incluye el nombre de la raza. Antes de comenzar, iniciaré un nuevo flujo de trabajo y pulsaré "Grabar".
Ahora, importemos varios archivos y naveguemos a la carpeta donde se encuentran. Aquí está la carpeta AKC, y queremos seleccionar archivos que solo contengan imágenes. Luego, agregaremos una columna de nombre de archivo para que el nombre de la raza se incluya en la tabla de datos. Como pueden ver, se importaron 28 imágenes en un solo paso. Luego, tengo la columna de nombre de archivo que puedo usar para editar. Necesito eliminar el archivo .JPG para poder unirlo al nombre de la raza en la carpeta AKC.
Detendré el flujo de trabajo. Quiero mostrar que JMP captura estos pasos en formato JSL. Abramos el flujo de trabajo completo. Aquí pueden verlo, y lo reproduciré. Grabé previamente la entrada de datos y la creación de los pasos. Sin embargo, quiero comentar que, al importar varios archivos, JMP nombrará la tabla de datos con el primer nombre del archivo y subrayará el último.
En mi carpeta del AKC, mi primer perro fue un Affenpinscher y el último un Otterhound. Seguiré con este proceso, y aquí está el resultado. Es el mismo gráfico que vieron antes, con la excepción de que he reemplazado los puntos con fotos de los perros en lugar de los puntos.
Ahora, veamos estas categorías de comportamiento. Tengo cuatro categorías, comenzando con alerta, receptivo y terminando con extrovertido. En el conjunto completo de datos del AKC, donde tengo 277 filas, hay más categorías de las que vieron en el gráfico porque solo tenía 28 imágenes. Intencionalmente, omití a los perros distantes y cautelosos. Esto es para mostrarles la reutilización de este flujo de trabajo.
Vamos a añadir cuatro perros distantes a nuestra carpeta AKC y luego volveremos a ejecutar este flujo de trabajo para que vean su adaptabilidad. Este flujo de trabajo se creó con 28 perros. Abre la carpeta. El último perro era un Otterhound. A la derecha, colocaremos estos cuatro perros distantes en la carpeta AKC, no en la AKC2.
Aquí está nuestra carpeta AKC. Pegaré los nuevos perros. Hemos añadido los perros distantes a la carpeta AKC y reproduciremos el flujo de trabajo. Pueden ver que los perros distantes se han añadido al gráfico. Así de flexible es Workflow Builder. Grabamos un flujo de trabajo que incorpora imágenes, las combina con el conjunto de datos de AKC, realiza una limpieza de datos y crea un gráfico. Luego, cuando añadimos más archivos a esa carpeta, simplemente pulsamos "Ejecutar" y todo se actualizará.
Profundicemos en uno de estos pasos del flujo de trabajo. El siguiente paso en complejidad consiste en descifrar código, aunque no demasiado. Podemos analizar este paso de importación de varios archivos y observar el JSL capturado. JMP se comunica con una ruta de carpeta específica donde se encuentran las fotos de mi perro.
Si tengo otra carpeta a la que quiero hacer referencia, simplemente puedo modificar esta ruta. Tengo otra carpeta llamada AKC2 que contiene aún más fotos de perros. Solo tengo que acceder aquí y hacer este pequeño cambio. Luego podemos reproducir el flujo de trabajo. Esta vez, verán 53 perros en lugar de 32, y el gráfico resultante estará mucho más poblado.
Una forma bastante sencilla de realizar el seguimiento del código es revisar la configuración de los pasos y realizar pequeños ajustes al código JSL. En esta iteración final, haremos un cambio más. Si este es un flujo de trabajo que quiero compartir con otros para que lo ejecuten, sería lógico modificar este primer paso para que se le solicite al usuario que configure su propia carpeta de archivos desde su propio directorio.
Retomaremos este paso y nos desplazaremos hasta el final. En lugar del paso "Importar datos", podemos reemplazarlo con "Crear ventana". El único cambio adicional que recomendaría es reemplazar la ruta de la carpeta con algo genérico como "escritorio" o "aquí pondré documentos". Reproduzcamos este primer paso.
Ahora pueden ver que la carpeta se ha configurado como documentos de forma predeterminada. Todas mis selecciones se han mantenido, como la columna "Añadir nombre de archivo", y se le solicita al usuario que navegue hasta donde se encuentren sus imágenes. Para concluir este ejemplo, vimos cómo importar varios archivos para integrar imágenes en una sola tabla y luego cómo usar Workflow Builder para crear un flujo de trabajo adaptable. Ahora, le cedo la palabra a Monique para el segundo ejemplo.
Claro. Gracias, Wendy. Permíteme compartir mi pantalla. Listo. Voy a ocultar el control de la reunión. Listo. Bien. Todos coincidimos en que eran mucho más bonitos que las fotos de gafas. Ese fue un buen ejemplo. En el segundo ejemplo, vamos a ver datos de PDF.
El porqué. Cuando investigaba, a veces me sumergía en un tema y encontraba información útil en algún archivo PDF. Podrían ser tablas de referencia química, tal vez datos de composición. Podría ser información sobre surfactantes de proveedores, de nuestras materias primas. Podrían ser informes analíticos.
A menudo había muchos datos y no quería importarlos manualmente simplemente copiándolos en una tabla de datos. ¿Cómo se introducen esos datos en JMP? Hoy mostraré, en primer lugar, el Asistente para Importar PDF, muy similar al Asistente para Importar de Excel y a otros asistentes de importación.
Un excelente punto de partida. Lo usaremos junto con Workflow Builder y luego haremos algo similar a lo que hacía Wendy: manipularemos el código fuente aquí y allá para automatizar la importación y simplificar algunas partes del proceso.
En JMP 18, se agregó una función útil al Generador de Flujos de Trabajo que realmente ayuda a resolver un problema con la limpieza. Después de importar muchas páginas PDF, debemos limpiarlas, y puede que sean muchas tablas. El Generador de Flujos de Trabajo ahora nos permitirá revisarlas. También lo mostraré. Para terminar, presentaré el PDF con el que vamos a trabajar. Lo abriré. Aquí está.
Analizaremos este ejemplo, un archivo PDF de dos páginas, que muestra la composición de ácidos grasos de las grasas comunes. En la primera página, se indica la composición de las grasas de origen animal, y en la segunda, la de las grasas y aceites de origen vegetal.
Parece una tabla con un formato bastante limpio, pero al examinar la primera página con más detalle, vemos que, aunque se ve bien para un PDF, para una tabla de datos JMP presenta algunos problemas. Esto indica que hay muchos pasos que debemos realizar después de importar los datos para obtener un formato utilizable.
Por ejemplo, no tenemos encabezados de columna. Esta primera columna es la categoría. Luego tenemos una columna con porcentajes. Otra columna con porcentajes aquí. Tenemos dos columnas que enumeran los ácidos grasos: una saturada y la otra insaturada.
También tenemos esta otra columna. Otro problema es que tenemos subtítulos. Por ejemplo, esta grasa de res es un subtítulo. Tiene subtotales. Es algo que podríamos querer eliminar, pero también necesitamos tomar este subtítulo y rellenarlo con un espacio en blanco, obviamente.
Este es otro problema. Como mencioné, algunos de estos subencabezados están distribuidos en dos filas, lo que obviamente también generará problemas en JMP, ya que no reconocerá que van juntos.
También tenemos datos como estos que abarcan varias columnas. Hay muchos problemas que tendremos que solucionar después de importarlos. Volvamos a nuestro diario y veamos primero el resultado final. Lo que realmente queremos hacer es usar JMP para importar ambas páginas, preferiblemente trabajando solo en una de ellas, y luego realizar todos los pasos de limpieza.
De nuevo, preferiblemente en una sola página, y luego hagamos que JMP se aplique a ambas páginas y luego combinemos los datos para poder usarlos. Lo registré en un flujo de trabajo. Este es el resultado final y lo recrearemos después. Primero, veamos este flujo de trabajo.
Tengo dos páginas abiertas, y el generador de flujos de trabajo está repasando todos estos pasos de limpieza. Hay muchos. Primero los está ejecutando en la primera tabla de datos, y ahora los está reiniciando y haciendo lo mismo en la segunda. Una vez hecho esto, unirá ambas tablas de datos y obtendrá un resultado de los datos combinados.
Listo. En este caso, analizamos las grasas saturadas en comparación con solo las grasas saturadas. Bien, voy a cerrar estas salidas rebobinando o reiniciando mi flujo de trabajo. Voy a cerrar este flujo de trabajo por completo y abrir uno vacío. Lo anclaré aquí, a la derecha, en el proyecto en el que estoy trabajando hoy.
Bien, empecemos desde el principio y abramos el PDF. Diré esto: estuve tentado de mostrar un ejemplo donde la importación de PDF funciona perfectamente, pero supongo que para omitirlo, solo tienen que creerme que a veces tienen un PDF y lo abren con JMP, y JMP reconoce la tabla de datos que buscan a la perfección; con solo dos clics, la tienen en una tabla de datos. Ese es el ejemplo perfecto.
Voy a usar un ejemplo imperfecto. Abro este PDF. Hago doble clic en el enlace y se abre el Asistente de importación de PDF. En la vista previa a la izquierda, pueden ver que JMP no reconoce esta tabla como debería. Reconocemos parte de ella, pero no podemos usarla.
Lo primero que debemos hacer es seleccionar "Ignorar todas las tablas". Esto restablecerá todo. Ahora que lo hemos restablecido todo, puedo usar el ratón y seleccionar esta tabla.
Al hacer eso, JMP intenta adivinar dónde están mis columnas. Voy a ampliar un poco la vista. Esto les permite ver que no detectó todas las columnas. Esto se debe a algunos problemas con los encabezados que abarcan varias columnas.
Eso no es un problema porque puedo agregarlos manualmente haciendo clic derecho. Por ejemplo, puedo ir a la derecha de mi % de peso, hacer clic derecho y agregar un divisor de columna. Luego tengo que hacer lo mismo aquí donde teníamos la segunda columna de % de peso: agregaré un divisor de columna aquí y otro aquí.
En este caso, esto es lo mejor que puede hacer esta tabla. Cabe destacar que, debajo del triángulo rojo, hay algunas opciones. Por ejemplo, puede establecer el número de filas que necesita usar como encabezado, lo cual también es una herramienta muy útil.
En este caso, solo voy a importar la primera tabla. Obviamente, podría hacer la misma selección aquí en la página 2, y no sería demasiado trabajo, ya que se trata de un archivo PDF de dos páginas. ¿Qué pasaría si tuviera una tabla de 10 o 20 páginas? Eso implicaría hacer muchos clics y agregar todos estos separadores de columnas, y podría ser un poco tedioso. Voy a hacerlo.
Voy a traer la primera página y veremos qué podemos hacer a partir de ahí. Haré clic en "Aceptar". Olvidé iniciar la grabadora de flujo de trabajo, así que John me lo pide. Diré: "Sí, por favor, grabe". Aquí tenemos la tabla y también este paso grabado. Voy a detener la grabación. Haré doble clic en el paso de grabación y lo moveré un poco para que podamos ver el JSL.
Aquí está el código para el primer paso de la importación. Podemos ver lo que sucede. Esta es la ubicación donde se encuentra este archivo. Luego hay una función de tabla PDF, otra función de tabla y algo llamado nombre de tabla. De hecho, este es el nombre de mi tabla de datos. Veo información sobre filas, heteros, y luego la página 1. Luego veo un rectángulo. Ese debe haber sido el rectángulo que estaba dibujando, y veo el borde de la columna. Esas deben ser las coordenadas donde quería colocar todos esos divisores.
Cuando veo eso, me tienta mucho, cuando tengo una segunda página, experimentar con ella. Hagámoslo. Queríamos traer esa segunda página. Tomemos esta y la coloquemos para las dos. Hagamos lo mismo aquí en el nombre de la tabla. Vamos a cambiar ese uno a dos.
Ahora quiero ejecutar este código, y puedo hacerlo directamente desde aquí con solo hacer clic derecho y seleccionar "Ejecutar script". Hagámoslo. Se ha abierto una segunda tabla. Voy a reducirla un poco. La revisaré de nuevo y la revisaré.
De inmediato, puedo ver que fue un éxito, ya que en esta tabla de datos tengo los aceites y grasas vegetales. Esta fue mi primera tabla de páginas con la grasa animal. Fue una forma muy sencilla de modificar el script que el generador de flujo de trabajo capturó para importar una segunda página. Copiar y pegar (repito, copiar y pegar o modificar este código aquí) podría ser más rápido que hacer clic y agregar manualmente todos estos separadores de columnas. Eso podría ahorrar tiempo.
Lo siguiente que quiero hacer es anticipar la segunda parte: la limpieza. Primero la haré y luego les mostraré por qué. Quiero tener un paso que abra ambas tablas de datos. Necesito saber cómo JMP registrará las tablas al importarlas con el Asistente de importación de PDF. Si no lo sé, la forma más sencilla es reiniciar la grabación. Primero, restableceré las salidas aquí, cerraré esta, para conservarla.
Ahora voy a empezar a grabar de nuevo y hacer clic en un PDF. Ignoraré todas las tablas. No me interesa mucho cómo deberían verse exactamente estas tablas. Solo quiero ver qué pasa si tengo dos tablas en una página. Haz clic en "Aceptar". Revisaré el código de pasos.
Este es el código de paso. Para el primero, creo que se introdujo este paso. Al importar las dos tablas, parece que JMP repite la función de tabla. Tengo una tabla aquí, luego una coma y luego otra tabla. Esa parece ser la estructura para importar dos tablas.
Ahora que lo sé, puedo eliminar este paso. No lo necesito. Puedo volver a él. Lo que quiero hacer es agrandarlo un poco más. Voy a colocar el cursor a la izquierda de este paréntesis de mi primera tabla para resaltar el paréntesis de cierre. Ahí está. Ahora que necesito copiar todo esto, simplemente voy a presionar Control + C. Luego, antes de esto, bajaré esto y presionaré Control + Pace para insertarlo y agregaré la coma, tal como descubrimos.
Ahora puedo cambiar esto. Primero, lo cambiaré de nuevo a uno. Cambiaré el título de nuevo a uno y la página de nuevo a uno, y luego la segunda tendrá página 2 y página 2. Bien, cerremos todo eso y veamos si funciona.
Al reproducir este paso, obtengo esas dos tablas de datos. Así es como ahora las tengo en un solo paso. ¿Por qué hice todo esto? Les mostraré. Voy a cerrar mis salidas. Voy a cerrar este flujo de trabajo y voy a abrir otro. Permítanme también acoplarlo de nuevo a la derecha.
Este flujo de trabajo tiene este paso. Hago doble clic donde estoy importando dos tablas. Aquí está mi tabla 1 y aquí mi tabla 2 para la página 2. Luego registré los pasos de limpieza y los realicé todos en la tabla 1. Al resaltar el primer paso, pueden ver que está en la página 1. Agrupé todos los pasos de limpieza y pueden ver que son muchos. No entraremos en detalles sobre esto en esta presentación, pero tendremos un recurso más adelante para consultarlo.
Ahora que hemos realizado todos estos pasos de limpieza en una de esas tablas de datos, ¿cómo lo hacemos en la segunda? En JMP 18, esto se volvió muy fácil. Solo tenemos que hacer clic derecho y seleccionar "ancho de grupo" para cada una. Retrocedamos. Tengo seleccionados todos los pasos de limpieza que quiero repetir, y luego haré clic derecho y seleccionaré "ancho de grupo" para cada uno.
Ahora JMP agrupó o agrupa estos pasos para cada elemento. Sin embargo, indica que no se seleccionó ninguna fuente. Tengo que hacer algo al respecto. Tengo que indicarle a JMP en qué bucles deben aparecer estos pasos. Para ello, en Configuración de pasos, voy a revisar la fuente. Es muy sencillo. Lo único que tengo que indicarle a JMP es que lo dirija al paso del flujo de trabajo que genera mis múltiples salidas.
En este caso, seleccionaré el paso "Importar a páginas PDF". En ese paso se crean dos tablas. Ahora JMP sabrá que debe realizar todos estos pasos en ambas salidas generadas. Veamos si funciona.
Voy a jugar esto. Tenemos dos salidas abiertas. Se está ejecutando. No, no se está ejecutando. Sigue los pasos de la primera mesa. Luego, cuando termine, debería pasar a la segunda. Listo, y lo ejecuta en la segunda mesa. Creo que es una función muy útil, sobre todo si tienes más de dos mesas.
Importé recientemente un PDF de 13 páginas. Después de importarlas, limpié una de las tablas y luego revisé todos los pasos. Quedó muy bien. Bueno, eso es lo que quería mostrar.
Vamos a ver el último ejemplo. Se trata de importar datos de un sitio web. Esto es directamente de lo que hice en I+D. Necesitaba obtener datos sobre la dureza del agua. La dureza del agua es un factor importante a considerar al formular. Encontré información excelente en un sitio web. La formulé con mucho esmero. Wendy nos explicará cómo hacerlo de forma mucho más elegante. Voy a dejar de compartir y te cedo la palabra, Wendy.
Bien, suena bien. Veamos el ejemplo 3 y analizaremos más detenidamente el For Each (o, dicho de otro modo, el For Each es simplemente un bucle). Echemos un vistazo al sitio web donde Monique encontró estos datos de dureza del agua. Estoy en HydroFlow USA, y si vamos a la sección de mapas interactivos, puedo navegar a un mapa de EE. UU.
HydroFlow USA proporciona datos de dureza del agua a nivel de ciudad. Voy a ir a uno de los estados, Minnesota, donde ambos vivimos, y haré clic en este enlace para mostrarles esta página con información sobre Minnesota. Hay una tabla con ciudades, sus códigos postales correspondientes y la dureza del agua en dos unidades diferentes.
Al observar esta URL, las demás URL de los demás estados siguen la misma estructura: el nombre del estado seguido de la dureza del agua. El problema de Monique era poder acceder a estos datos en la web para poder complementar su análisis.
Usando JMP, pude incorporar todos los datos de dureza del agua de todos los estados en una tabla de datos como esta. Pueden ver que hay 855 filas porque cada estado contiene varias filas correspondientes a las ciudades. Tener estos datos le permitió a Monique ampliar su análisis. Si le doy al botón de reproducción, pueden ver, de forma muy sencilla, que permite recrear la dureza del agua a nivel estatal.
En este ejemplo 3, les mostraré algunas herramientas. Una de ellas usa JMPs Internet Open para acceder a datos de una página web. Luego, tomaremos ese Internet Open y lo repetiremos en bucle. Lo encapsularemos en un bucle para poder reunir los datos de todos los estados en una tabla.
Empecemos por echar un vistazo a Internet Open. Voy a empezar por obtener la URL de ese sitio web. Simplemente presionaré Control + C en la página web que contiene la dureza del agua de Minnesota e iniciaré un flujo de trabajo. Pulsaré Grabar y ahora iré a Archivo, Página web de Internet Open. Pegaré la URL y haré clic en Aceptar.
JMP está detectando una tabla en esa página. Seleccionaré "Aceptar". Esto debería darle una idea de lo que se puede hacer al importar datos que residen en una sola página.
Voy al flujo de trabajo y detengo la grabación. Al revisar lo grabado, JMP ejecuta este JSL o lo grabó. Es simplemente una declaración abierta con el nombre de la URL y algunos detalles adicionales sobre que es una tabla HTML. De cara al futuro, no querríamos tener que revisar cada una de las 51 páginas por separado.
Idealmente, tendríamos este único paso de importación que recorreríamos en bucle para todos los estados. Ahora volveremos a la dureza del agua, pero primero veremos un ejemplo en la documentación de JMP que describe cómo funciona cada uno.
Si sigues este enlace en los materiales, accederás directamente al ejemplo. Voy a explicarlo en las diapositivas y luego lo crearemos juntos. ¡Vaya! Veamos. Te mostraré mis diapositivas.
Me aseguraré de que esto se corrija en la versión que se suba. En el ejemplo de la documentación de JMP, el objetivo era crear un conjunto de gráficos, y simplemente se trataba de tres gráficos de distribución para cada género. El conjunto de datos utilizado en el ejemplo es diabetes, donde hay dos géneros. La forma en que se construyó fue crear un subconjunto del conjunto de datos de diabetes con género 1 y género 2, crear esos gráficos de distribución solo para el género 1 y luego encapsular ese paso 2 en un diagrama para cada uno, de modo que el flujo de trabajo funcione tanto para el género 1 como para el género 2 sin tener que registrar los pasos para el género 2.
Veamos cómo crear esto desde cero. Iniciaré un nuevo flujo de trabajo y pulsaré "Grabar". Busquemos el conjunto de datos de diabetes. Aquí está el conjunto de datos de diabetes, y aquí pueden ver género 1 y género 2. Primero, crearemos un subconjunto por género. Repitamos esto porque queremos deseleccionar las filas. Subconjunto por género. Aquí, en la vista previa, pueden ver género 1 y género 2. Debería obtener dos tablas, y las obtengo. Aquí están género 1 y género 2.
Comenzaré con el género 1 y crearé mis visualizaciones. Lo haré de forma sencilla: crearé una distribución con tres variables. Ahora, pasaré a mi flujo de trabajo. Vayamos al flujo de trabajo correcto. Aquí pueden ver que he grabado varios pasos porque tuve que rehacerlo varias veces.
Podrás ver un poco cómo se hace la salchicha. Vamos a eliminar los pasos que no necesito porque la reenvié. Reproduzcamos esto para asegurarnos de que tenemos lo necesario. Abre la tabla de datos, crea un subconjunto de la tabla de datos en género 1, género 2 y luego debería obtener la distribución para el género 1. Listo. Género 1, género 2 y estos son solo los datos para el género 1.
Ahora, para cada uno, tomaré este paso del informe y haré clic derecho y seleccionaré "agrupar con" para cada uno. Esto es lo que quiero que se repita. Si llego a "para cada uno", el paso del flujo de trabajo que ya está seleccionado es el paso anterior donde he creado un subconjunto, así que no es necesario hacer cambios. Al volver a ejecutar el flujo de trabajo, verán que se ejecutan dos distribuciones, una para cada género. Listo. Aquí está el género 1 y aquí el género 2.
¿Cómo podemos usar este tipo de marco para obtener los datos que necesitamos sobre la dureza del agua de HydroFlow? Hagamos una limpieza. Regresaremos a las diapositivas, adaptándolas para la dureza del agua. Sabiendo que quería recorrer los estados conceptualmente, pensé: "Permítanme crear una tabla como la del ejemplo de la diabetes, y luego la subconjunto en tablas individuales para cada estado que contenga la URL". Registraré la apertura de internet para uno de los estados y luego la incluiré en un "for each" para que se muestre la apertura de internet para todos los estados.
Reproduzcamos el flujo de trabajo que he completado. Algo que notarán al reproducirlo es que solo habrá unos pocos estados, ya que tomaría demasiado tiempo incluirlos todos. Voy a ejecutar el flujo de trabajo justo antes de los pasos de limpieza de datos para que podamos conversar y luego reproducir el resto.
Se abre la tabla Estados y luego se subdivide en los estados individuales que contienen la URL. Ahora se ve que la conexión a internet se abre para cada uno de esos estados. Si observa el espacio de trabajo, he realizado la conexión a internet para estos cinco estados.
Si regreso al flujo de trabajo y habilito el resto de los pasos, verá que todos estos datos se combinan en una sola tabla de estados, nuevamente, en esta situación con solo cinco estados, y luego un gráfico que muestra la dureza del agua.
Al observar el flujo de trabajo, se muestra lo que ocurre en cada paso. Aquí es donde comienzo a describir una complejidad adicional en este ejemplo. Para importar HTML, para que Internet Open tuviera que añadir JSL personalizado. Si lo amplío, modifiqué este paso de importación que se registró desde el generador de flujos de trabajo. Ahora, volveré a la diapositiva para que podamos explicar cuáles fueron esos cambios específicos.
Esta declaración es la que registra Workflow Builder cuando abro una conexión a internet en Alabama. Como quiero referenciar todos los estados, la reemplazaré con algo genérico: una variable llamada simplemente dirección web. Si consideramos solo la tabla de Alabama, necesito poder referenciar la dirección web a una celda específica de esta tabla de datos, y esa celda contiene la URL.
Al recorrer el lenguaje de programación JMP, poder hablar de una tabla de datos, dices tabla de datos y luego tienes el nombre de la tabla de datos dentro.
Luego, al hacer referencia a una columna en esa tabla de datos, se llamaría a la tabla de datos, se usarían dos puntos y luego el nombre de la columna. En este caso, sería "tabla de datos estado igual a Alabama", y URL es el nombre de la columna. Finalmente, como queremos una celda específica que contenga la URL, añadimos estos corchetes. Para todos los estados, solo se usa el número 1, ya que todas las tablas contienen una sola fila, que es la celda que contiene la URL.
Para concluir este ejemplo, se mostró que internet open permite acceder a datos de una página web. Luego, profundizamos en el ejemplo de "for each" usando la documentación de JMP. Después, pudieron ver cómo lo adapté para acceder a datos de internet open con un poco de JSL personalizado. Después, se lo devuelvo a Monique para concluir.
Sí. Gracias, Wendy. Hoy te mostramos cómo importar todo tipo de datos: imágenes, datos de PDF y páginas web, y cómo automatizarlo sin scripts. Workflow Builder es una herramienta excelente. Puedes ir aún más allá revisando el código JSL que graba y haciendo pequeñas modificaciones. No dudes en revisar ese JSL y profundizar en el tema. Gracias por acompañarnos hoy y esperamos que te haya sido útil.