La mise à jour d'un tableau de données JMP à partir d'une feuille de calcul simplifiée - Partie 1À l'ère du Big Data, nous aimerions avoir toutes les données dans, par exemple, des bases de données, des serveurs Hadoop, ou y accéder directement à partir de flux. Cependant, de nombreuses données sont encore enregistrées ou écrites dans des feuilles de calcul, mises à jour manuellement ou automatiquement par des machines, des ingénieurs, des personnes de laboratoire ou d'autres types d'opérateurs. Dans JMP, il est facile d'importer tout type de données d'une feuille de calcul vers JMP. Vous pouvez même automatiser cela facilement à l'aide du script "Source" généré automatiquement. Mais si vous exécutez à nouveau ce script, une nouvelle table de données s'ouvre et ne met pas à jour la table de données actuelle.
Habituellement, ce n’est pas exactement ce que vous souhaitez. Pourquoi? Vous avez peut-être déjà effectué un nettoyage ou un recodage des données. Vous avez peut-être également effectué des analyses enregistrées dans le tableau de données que vous souhaitez utiliser ultérieurement également pour les nouvelles données. Je vais vous montrer dans cet article un moyen de mettre à jour votre tableau de données actuel avec les nouvelles données d'une feuille de calcul, en préservant les lignes que vous avez actuellement et en ajoutant uniquement les nouvelles lignes de la feuille de calcul.
Il y a deux scénarios que je souhaite aborder :
- Dans cet article, je couvre le cas simple des données structurées verticales. Cela signifie que vous avez une ligne avec les noms de colonnes et que dans les autres lignes au-delà se trouvent les données.

- Dans un deuxième article Je couvrirai le cas des données structurées horizontales. C'est-à-dire que la première ligne/première colonne est le nom du paramètre, dans les colonnes suivantes se trouvent les données. Dans la deuxième ligne se trouvent les unités, dans la troisième ligne le numéro de lot. Puis une ligne vide et après cela encore la même chose pour un autre paramètre. C’est plus facile à lire dans une feuille de calcul mais en réalité pas très facile à analyser. Je vois souvent ce type de données, même s'il serait bien préférable de former les gens à saisir les données de manière verticale plutôt que d'essayer de contourner la structure horizontale.

Jetons donc un coup d'œil aux données de la feuille de calcul, ce sont des données météorologiques, et elles sont simplistes pour démontrer le concept. Vous trouverez ci-joint le script dans le tableau de données JMP et les feuilles de calcul Excel pour le premier cas.
Commençons par la situation
Nous avons déjà importé une version antérieure de la feuille de calcul (3 lignes de données à ce moment-là). Nous voulons maintenant mettre à jour le tableau de données. Vous voyez un script de mise à jour dans la fenêtre supérieure gauche de la table de données. Ce script fera ce qui suit :
- Accédez au nom de la table de données actuelle et au nombre de lignes de cette table de données
- Définissez le nom du fichier de feuille de calcul et le nom de la feuille de calcul à partir duquel nous souhaitons obtenir les nouvelles données
- Ouvre la feuille de calcul et lit les données de la feuille de calcul dans un tableau de données d'aide.
- Nous nous appuyons sur le script source généré lors de la première importation des données.
- Mais nous avons modifié l'entrée "Les données commencent sur la ligne" de (2) à (2+n_Rows), afin que nous obtenions uniquement les données que nous n'avons pas encore importées.
- Il ne reste plus qu'à concaténer les deux tables en utilisant l'option "Ajouter à la première table".
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);
Conclusion
Cela ne semble pas difficile. Ce qui est bien, c'est que vous pouvez utiliser par exemple des fonctionnalités de nettoyage de données comme le recodage, les enregistrer sous forme de colonne de formule et les nouvelles données seront traitées automatiquement. Ou vous avez créé un modèle prédictif avec les données précédentes, enregistré la formule de prédiction dans le tableau de données et visualisé les prédictions pour les nouvelles données (et par exemple les comparer à un nouveau modèle ou aux données prédites réelles). Je suis sûr que vous trouverez de nombreux cas d'utilisation et j'espère que cela vous sera utile.
Bien sûr, vous pouvez l'utiliser et l'étendre en ajoutant une analyse aux données, comme la mise à jour d'une carte de contrôle ou d'une autre analyse de tendance. À l'aide du planificateur Windows, vous souhaiterez peut-être mettre à jour votre rapport et l'envoyer à notre nouveau produit. JMP en direct , afin que d'autres personnes (pas nécessairement des utilisateurs JMP sous licence) puissent accéder aux rapports dans un navigateur Web avec l'interactivité de JMP comme le filtre de données, le sélecteur de colonnes, etc.
À quoi s'attendre ensuite
Dans mon prochain article je parlerai du deuxième cas qui est légèrement différent, mais pas beaucoup plus difficile.
Je suis curieux de savoir si vous rencontrez ce genre de problème ou comment vos données sont structurées (dans des feuilles de calcul). S'il vous plaît laissez vos commentaires.
Tous mes vœux,
Martin
PS : Deux commentaires aux fichiers :
- Dans WeatherData.jmp, vous trouverez un script pour mettre à jour le tableau de données avec le fichier Excel ci-joint. Les deux fichiers doivent être enregistrés dans le même dossier (c'était par souci de simplicité, vous pouvez facilement changer le nom du fichier codé en dur avec par exemple Pick File(), et également extraire le nom.
- Le deuxième script est "Supprimer les deux dernières lignes" qui permet de supprimer des lignes du tableau de données pour les mettre à jour à nouveau à partir de la feuille Excel, sans avoir à supprimer manuellement les lignes. Donc tout cela pour votre commodité

Mettez à jour votre table de données JMP actuelle avec les nouvelles données d'un ( verticale structurée), préservant les modifications apportées au tableau de données actuel.
- Partie 1Re : Mise à jour simplifiée d'un tableau de données JMP à partir d'une feuille de calcul - Partie 1Salut Hogi,
ce serait une option si vous n’apportez aucune modification à vos données précédentes. Par exemple, vous avez peut-être déjà effectué des contrôles de qualité de vos données et modifié ou exclu des données ou fait des commentaires supplémentaires ou autre. Dès que vous avez modifié quelque chose, cette façon d'ajouter les données éliminera toutes vos modifications, ce qui n'est généralement pas souhaité.
Re : Mise à jour simplifiée d'un tableau de données JMP à partir d'une feuille de calcul - Partie 1une autre approche:
1) charger les nouvelles données via Source Scénario
2) supprimer toutes les lignes de la table principale
3) ajouter les nouvelles données via concaténer
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 : Mise à jour simplifiée d'un tableau de données JMP à partir d'une feuille de calcul - Partie 1Salut hogi, merci pour vos options supplémentaires, très sympa.
et tu as raison :
"Mettre à jour la table principale avec les données de la deuxième table" utilisera simplement les colonnes de la table actuelle et mettra à jour les colonnes si les noms des colonnes correspondent. Cela n’ajoutera aucune des autres colonnes de la deuxième table.
"fusionner les colonnes du même nom" fusionnera/écrasera/remplira également les espaces vides avec les données des colonnes portant des noms similaires. Mais il ajoutera également les autres colonnes du deuxième tableau.
Pour le premier, vous pouvez également utiliser la fonctionnalité Tables->Mettre à jour, surtout si vous ne souhaitez pas créer une nouvelle table de données avec cette opération mais mettre à jour celle existante avec les données de la seconde.
Je ne suis pas au courant qu'il y ait une autre différence.
Re : Mise à jour simplifiée d'un tableau de données JMP à partir d'une feuille de calcul - Partie 1Je me demandais juste quelle est la différence entre " Mettre à jour la table principale avec les données de la deuxième table " et " fusionner les colonnes du même nom " - ici, ils font exactement la même chose, non ?

Après avoir bidouillé pendant un moment, j'ai trouvé une différence lors de l'utilisation d'un deuxième tableau avec des colonnes supplémentaires :
-" Mettre à jour la table principale avec les données de la deuxième table " mises à jour la table principale (par fusion des colonnes du même nom ), pas de colonnes supplémentaires
-" Fusionner les colonnes de même nom " est-ce que le même , mais en plus, il ajoute les nouvelles colonnes de la deuxième table.
Y a-t-il plus de différences ?
Re : Mise à jour simplifiée d'un tableau de données JMP à partir d'une feuille de calcul - Partie 1Alternativement, on peut utiliser la plateforme Join...
Chargez d’abord les deux tables :
Open( "$DOWNLOADS/WeatherData.jmp" );
Open( "$DOWNLOADS/WeatherData.xlsx", Worksheets( "Backup_NewData" ), );
Ensuite, le plus simple est de les joindre « par numéro de ligne » :
Data Table( "WeatherData" ) << Join(
With( Data Table( "Backup_NewData" ) ),
Merge Same Name Columns,
By Row Number
);
Alternativement, le Date La colonne peut être utilisée pour identifier des entrées individuelles indépendamment du numéro de ligne.
Cela permet une manière plus robuste de rejoindre les tables via Faire correspondre les colonnes :
(NB : en raison du décalage horaire d'une minute, les 15 et 16 octobre apparaîtront deux fois)
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 : Mise à jour simplifiée d'une table de données JMP à partir d'une feuille de calcul - Partie 1@martindemel , vous avez mentionné ci-dessus :
Pour le premier, vous pouvez également utiliser la fonctionnalité Tables->Mettre à jour, surtout si vous ne souhaitez pas créer une nouvelle table de données avec cette opération mais mettre à jour la table existante avec les données de la seconde.
C'est exactement ce que je souhaite faire, mais « Mettre à jour » ne permet pas d'ajouter des lignes de la nouvelle table ; elle se contente de mettre à jour les données existantes. De plus, « Joindre » ne permet pas de NE PAS créer de nouvelle table de données. C'est très frustrant, car j'utilise cette table de données avec une jointure virtuelle, et le lien de jointure virtuelle avec la nouvelle table de données est rompu.
J'ai trouvé un élément de la liste de souhaits JMP pour cela : « Jointure de tables : option de mise à jour de la table principale » . Veuillez voter pour cet élément si vous souhaitez que cela soit implémenté dans JMP.