Actualizar una tabla de datos JMP desde una hoja de cálculo es fácil: Parte 1En la era del big data nos gustaría tener todos los datos, por ejemplo, en bases de datos, servidores hadoop o acceder a ellos directamente desde los flujos. Sin embargo, todavía muchos datos se guardan o escriben en hojas de cálculo, y las máquinas, ingenieros, personal de laboratorio u otro tipo de operadores los actualizan manual o automáticamente. En JMP es fácil importar cualquier tipo de datos desde una hoja de cálculo a JMP. Incluso puedes automatizar esto fácilmente usando el script "Fuente" generado automáticamente. Pero, si ejecuta este script nuevamente, se abre una nueva tabla de datos y no actualiza la tabla de datos actual.
Normalmente esto no es exactamente lo que quieres. ¿Por qué? Es posible que ya haya realizado alguna limpieza o grabación de datos. Es posible que también haya realizado algunos análisis guardados en la tabla de datos que desea utilizar más adelante también para los nuevos datos. En este artículo le mostraré una manera de actualizar su tabla de datos actual con nuevos datos de una hoja de cálculo, conservando las filas que tiene actualmente y agregando solo las nuevas filas de la hoja de cálculo.
Hay dos escenarios que quiero cubrir:
- En este artículo cubro el caso sencillo de los datos estructurados verticales. Eso significa que tiene una fila con nombres de columnas y en las otras filas más allá están los datos.

- en un segundo artículo Cubriré el caso de datos estructurados horizontales. Es decir, la primera fila/primera columna es el nombre del parámetro, en las siguientes columnas están los datos. En la segunda fila están las unidades, en la tercera fila el número de lote. Luego una fila vacía y luego lo mismo nuevamente para otro parámetro. Esto es más fácil de leer en una hoja de cálculo, pero en realidad no es muy fácil de analizar. A menudo veo este tipo de datos, aunque sería mucho mejor capacitar a las personas para que ingresen datos de forma vertical que intentar solucionarlos con la estructura horizontal.

Entonces, echemos un vistazo a los datos de la hoja de cálculo, son datos meteorológicos, y es simplista para demostrar el concepto. Adjunto encontrará el script en la tabla de datos JMP y las hojas de cálculo de Excel para el primer caso.
Empecemos con la situación.
Ya hemos importado una versión anterior de la hoja de cálculo (3 filas de datos hasta ese momento). Ahora queremos actualizar la tabla de datos. Verá un script de actualización en la ventana superior izquierda de la tabla de datos. Este script hará lo siguiente:
- Acceda al nombre de la tabla de datos actual y al número de filas en esa tabla de datos
- Establezca el nombre del archivo de la hoja de cálculo y el nombre de la hoja de trabajo de la que queremos obtener los nuevos datos.
- Abre la hoja de cálculo y lee los datos de la hoja de trabajo en una tabla de datos de ayuda.
- Nos basamos en el script fuente generado cuando importamos los datos por primera vez.
- Pero cambió la entrada "Los datos comienzan en la fila" de (2) a (2+n_Rows), por lo que solo obtenemos los datos que aún no hemos importado.
- Ahora solo nos queda concatenar las dos tablas usando la opción "Agregar a la primera tabla".
cdt = Current Data Table();
excelFile = "WeatherData.xlsx";
name_worksheet = "WeatherData"; // or "Sheet1" for this Excel book example
n_Rows = N Rows();
dt_h1 = Open(
excelFile,
Worksheets( name_worksheet ),
Use for all sheets( 1 ),
Concatenate Worksheets( 1 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 + n_Rows ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 )
),
Invisible
);
cdt << Concatenate (dt_h1, Append to first table);
Close(dt_h1);
Conclusión
No parece tan difícil. Lo bueno es que puede utilizar, por ejemplo, funciones de limpieza de datos como recodificar, guardarlos como una columna de fórmula y los nuevos datos se manejarán automáticamente. O ha creado un modelo predictivo con los datos anteriores, ha guardado la fórmula de predicción en la tabla de datos y ve las predicciones para los nuevos datos (y, por ejemplo, los compara con un nuevo modelo o con los datos predichos reales). Estoy seguro de que encontrará muchos casos de uso y espero que esto le resulte útil.
Por supuesto, puede utilizar esto y ampliarlo agregando análisis a los datos, como actualizar un gráfico de control u otro análisis de tendencias. Al utilizar el Programador de Windows, es posible que desee actualizar su informe y enviarlo a nuestro nuevo producto. JMP en vivo , para que otras personas (no necesariamente usuarios de JMP con licencia) puedan acceder a los informes en un navegador web con la interactividad de JMP, como filtro de datos, conmutador de columnas, etc.
Qué esperar a continuación
En mi próximo post hablaré del segundo caso, que es ligeramente diferente, pero no mucho más difícil.
Me interesa saber si tiene este tipo de problema o cómo están estructurados sus datos (en hojas de cálculo). Por favor deja tus comentarios.
Mis mejores deseos,
Martín
PD: Dos comentarios a los archivos:
- En WeatherData.jmp encontrará un script para actualizar la tabla de datos con el archivo Excel adjunto. Ambos archivos deben guardarse en la misma carpeta (esto fue por simplicidad, puede cambiar fácilmente el nombre del archivo codificado con, por ejemplo, Seleccionar archivo() y también extraer el nombre.
- El segundo script es "Eliminar las dos últimas filas", que permite eliminar filas en la tabla de datos para actualizar nuevamente desde la hoja de Excel, sin tener que eliminar las filas manualmente. Así que todo para tu comodidad.

Obtenga su tabla de datos JMP actual actualizada con nuevos datos de ( vertical estructurada), preservando los cambios realizados en la tabla de datos actual.
- Parte 1Re: Actualizar una tabla de datos JMP desde una hoja de cálculo de forma sencilla - Parte 1Hola hogi,
esta sería una opción si no realiza ningún cambio en sus datos anteriores. Por ejemplo, es posible que ya haya realizado algunas comprobaciones de calidad de sus datos y haya cambiado o excluido datos o haya realizado comentarios adicionales o lo que sea. Tan pronto como cambie algo, esta forma de agregar los datos eliminará todos los cambios que generalmente no son deseados.
Re: Actualizar una tabla de datos JMP desde una hoja de cálculo de forma sencilla - Parte 1otro enfoque:
1) cargar los nuevos datos a través de Fuente Guion
2) eliminar todas las filas de la tabla principal
3) agregar los nuevos datos mediante concatenación
dt = Current Data Table();
dtnew = dt << Run Script( "Source" );
dt << Select All Rows << Delete Rows;
dt << Concatenate( dtnew, Append to first table );
Close( dtnew, NoSave );
Re: Actualizar una tabla de datos JMP desde una hoja de cálculo de forma sencilla - Parte 1Hola hogi, gracias por tus opciones adicionales, muy agradable.
y tienes razón:
"Actualizar la tabla principal con datos de la segunda tabla" simplemente usará las columnas de la tabla actual y las actualizará si los nombres de las columnas coinciden. No agregará ninguna de las otras columnas de la segunda tabla.
"fusionar columnas del mismo nombre" también fusionará/sobrescribirá/llenará los espacios vacíos con los datos de columnas con nombres similares. Pero también agregará las otras columnas de la segunda tabla.
Para la primera también podría utilizar la funcionalidad Tablas->Actualizar, especialmente si no desea crear una nueva tabla de datos con esta operación sino actualizar la existente con los datos de la segunda.
No soy consciente de que haya alguna otra diferencia.
Re: Actualizar una tabla de datos JMP desde una hoja de cálculo de forma sencilla - Parte 1Me preguntaba cuál es la diferencia entre " Actualizar la tabla principal con datos de la segunda tabla " y " fusionar columnas del mismo nombre " - aquí hacen exactamente lo mismo, ¿no?

Después de jugar un rato, encontré una diferencia al usar una segunda tabla con columnas adicionales:
- " Actualizar la tabla principal con datos de la segunda tabla " actualizaciones la mesa principal (por fusionando columnas del mismo nombre ), sin columnas adicionales
- " Fusionar columnas del mismo nombre "¿El mismo , pero además agrega las nuevas columnas de la segunda tabla.
¿Hay más diferencias?
Re: Actualizar una tabla de datos JMP desde una hoja de cálculo de forma sencilla - Parte 1Alternativamente, se puede utilizar la plataforma Unirse...
Primero cargue ambas tablas:
Open( "$DOWNLOADS/WeatherData.jmp" );
Open( "$DOWNLOADS/WeatherData.xlsx", Worksheets( "Backup_NewData" ), );
Entonces la forma más sencilla es unirlos "por número de fila":
Data Table( "WeatherData" ) << Join(
With( Data Table( "Backup_NewData" ) ),
Merge Same Name Columns,
By Row Number
);
Alternativamente, el Fecha La columna se puede utilizar para identificar entradas individuales independientemente del número de fila.
Esto permite una forma más robusta de unir las mesas a través de Coincidir columnas :
(NB: debido al intervalo de tiempo de 1 minuto, los días 15 y 16 de octubre aparecerán dos veces)
Data Table( "WeatherData" ) << Join(
With( Data Table( "Backup_NewData" ) ),
Merge Same Name Columns,
By Matching Columns( :Date = :Date ),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 1 )
)
Re: Actualizar una tabla de datos JMP desde una hoja de cálculo de forma sencilla (Parte 1)@martindemel , mencionaste arriba:
Para el primero también se puede utilizar la funcionalidad Tablas->Actualizar, especialmente si no se desea crear una nueva tabla de datos con esta operación sino actualizar la existente con los datos de la segunda.
Eso es exactamente lo que quiero hacer, pero "Actualizar" no permite agregar filas de la nueva tabla; solo actualiza los datos existentes. Y "Unir" no permite no crear una nueva tabla de datos. Esto es muy frustrante, ya que estoy usando esta tabla de datos con una unión virtual y el enlace de la unión virtual se rompe con la nueva tabla de datos.
Encontré un elemento en la lista de deseos de JMP para esto: "Unión de tablas: opción para actualizar la tabla principal" . Si quieres que se implemente en JMP, dale un voto positivo.