Il faut faire preuve de créativité pour continuer la séquence jusqu'à la fin du tableauBonjour,
Je ne suis pas sûr qu'il existe une excellente solution à mon problème spécifique, mais j'aimerais entendre les avis des experts...
Dans mon utilisation de JMP 17, j'ajoute souvent de nouvelles données à un fichier existant. Chaque ligne aura son propre « numéro de lot » unique qui lui sera attribué. Lorsque j'obtiendrai un nouvel ensemble de données, il y aura de nouveaux numéros de lot que je devrai ajouter à mon fichier existant. Jusqu'à présent, le moyen le plus simple de procéder consisterait simplement à copier les nouveaux numéros de lot dans le fichier maître et à exécuter une fonction de mise à jour de table pour transférer toutes les données nécessaires, mais je recherche une option permettant de procéder de manière plus automatisée afin de réduire le temps de « traitement des données ».
En fin de compte, est-ce que je suis obligé d’utiliser l’une des méthodes ci-dessous ou existe-t-il un moyen plus créatif d’accomplir cette tâche via JSL ?
Ce que j'ai essayé :
- Ajoutez des lignes, puis mettez en surbrillance les derniers numéros de lot et remplissez -> Continuer la séquence jusqu'à la fin du tableau
- L'ajout de lignes peut être réalisé via JSL, mais j'ai eu du mal à trouver un moyen autonome de remplir jusqu'à la fin du tableau...
- Copiez et collez les numéros de lot de l'importation de données dans le maître de données, puis exécutez une fonction de mise à jour de la table pour extraire le reste des données.
- Méthode éprouvée qui fonctionne bien à chaque fois, il faut juste qu'elle soit un peu plus automatisée que cela.
- Concaténer les tables de données puis supprimer les doublons
- Cela a très bien fonctionné, mais parfois les données de la dernière poignée de lignes sont incomplètes dans la base de données principale, mais seraient complètes avec la mise à jour des données. L'utilisation de cette méthode supprime les anciens doublons alors qu'il serait plus idéal de conserver les doublons les plus récents. Cette méthode pourrait très bien fonctionner si je pouvais conserver les doublons les plus récents.
- Utilisez une formule Row() dans une colonne adjacente ou pour la colonne de numéro de lot elle-même.
- Nous ne commençons presque jamais par le lot n°1, mais cela est facilement résolu en ajoutant Row()+(un nombre). c'est-à-dire que si le premier lot est 6543, alors ma formule serait [Row() + 6542] et le nombre correct serait calculé.
- Cela fonctionnerait également bien, mais parfois les numéros de lot sont ignorés. Cela entraînerait une non-concordance entre la colonne calculée et la colonne du numéro de lot, à moins que je ne veuille parfois avoir des lacunes dans les données
Automatisation et scriptsRé: Il faut faire preuve de créativité pour continuer la séquence jusqu'à la fin du tableauSi vous pouvez définir les règles et les exceptions, alors JSL peut être écrit pour résoudre votre problème. J'ai du mal à suivre tout ce que vous avez dit, mais il semble que si vous pouvez définir où obtenir le premier numéro de lot, et quoi faire en cas d'irrégularités, puis comment détecter et ensuite gérer le cas où il y a des numéros de lot ignorés, tout cela peut être géré en JSL.
Ré: Il faut faire preuve de créativité pour continuer la séquence jusqu'à la fin du tableauC'est un exercice vraiment simple... disons que j'ai un ensemble de données « maître » avec les lots 19257 à 19640. J'ai reçu un nouvel ensemble de données avec les lots 19620 à 19665 que je dois maintenant ajouter à l'ensemble de données « maître » afin qu'ils soient tous dans un seul fichier. La pratique normale consiste à copier ces nouveaux numéros de lot sur le maître, puis à exécuter Tables -> Update, à faire correspondre les deux tables Batch = Batch, puis la mise à jour récupère toutes les nouvelles données.
Mon plus gros problème est d'utiliser JSL pour transférer les numéros de lot des nouvelles données vers les données principales, ou de les faire remplir jusqu'à la fin de la table de manière autonome. L'ajout de lignes, l'exécution de la mise à jour de la table et la suppression des lignes inutilisées constituent la partie la plus simple.
Ré: Il faut faire preuve de créativité pour continuer la séquence jusqu'à la fin du tableauVous pouvez utiliser
Tables=>Rejoindre
qui créera une nouvelle table avec toutes les données de la table d'origine ainsi que les nouvelles lignes de la nouvelle table saisie. Vous pouvez ensuite simplement supprimer la table d'origine et renommer la nouvelle table jointe.
Ré: Il faut faire preuve de créativité pour continuer la séquence jusqu'à la fin du tableauCela fonctionne bien, mais la nouvelle table perd alors les états de ligne qui peuvent être appliqués dans la première table de données. Je sais que je peux utiliser une colonne État de ligne, mais j'ai besoin que toutes les actions soient enregistrées dans le journal et « copier à partir des états de ligne » n'est pas enregistré dans le journal pour une raison quelconque. L'idée est que tout cela soit enregistré dans le journal afin que mes pairs puissent copier à partir de là pour créer ce script de mise à jour des données sans avoir besoin d'apprendre le codage qui le sous-tend.
Concaténer est peut-être l'option que je recherche en fin de compte, mais j'ai besoin d'un moyen de supprimer les doublons tout en conservant le DEUXIÈME doublon. La plupart des informations sur des dizaines de colonnes seront identiques, mais le premier doublon comportera des données manquantes vers la fin de la liste des colonnes. Par conséquent, le deuxième doublon fournira un ensemble de données plus complet. Ainsi :
Lot #
1
2
3 (dupliquer, supprimer)
4 (dupliquer, supprimer)
5 (dupliquer, supprimer)
[ci-dessous se trouvent les données concaténées avec quelques lots en double]
3 (dupliquer, conserver)
4 (dupliquer, conserver)
5 (dupliquer, conserver)
6
7
8
Ré: Il faut faire preuve de créativité pour continuer la séquence jusqu'à la fin du tableauJe ne peux pas imaginer ce que vous décrivez lorsque vous dites : « L'idée est que tout cela soit enregistré dans le journal afin que mes pairs puissent copier à partir de là pour créer ce script de mise à jour des données sans avoir besoin d'apprendre le codage qui le sous-tend. » Existe-t-il un moyen de parcourir exactement ce qui est fourni dans le journal que les utilisateurs copient et utilisent ?
Concernant les lots en double, je vous suggère de rechercher dans l'index de scripts la fonction Sélectionner les lignes en double. Elle trouvera toutes les lignes qui ont été précédemment vues. Vous pouvez ensuite parcourir les doublons trouvés et, à partir de là, rechercher la ligne précédente qui a été dupliquée, puis supprimer cette ligne.
Ré: Il faut faire preuve de créativité pour continuer la séquence jusqu'à la fin du tableauLorsque je fais cette déclaration, je fais référence à la série d’étapes nécessaires à l’intégration de nouvelles données dans un ensemble de données existant, notamment :
- Ouvrir et importer un nouvel ensemble de données Excel précédemment enregistré avec un nom de fichier spécifique dans un emplacement spécifique
- Ajoutez ces données à l’ensemble de données existant pour le rendre plus complet
- « Nettoyer » les données (c'est-à-dire supprimer les colonnes que le nouvel ensemble de données ajoute mais qui ne sont pas nécessaires, reformater les autres colonnes, tout ce qui pourrait être nécessaire)
Toutes ces actions sont ajoutées au journal et le JSL généré par le journal peut être copié dans un nouveau script sur la table de données. Peu de mes collègues maîtrisent le JSL, nous avons donc besoin de cette simplicité pour permettre à toute l'équipe de rendre ce projet reproductible pour tout le monde. Si je dois ajouter manuellement du code JSL à un script que le journal ne capture pas, cela rend le produit final beaucoup plus difficile à mettre en œuvre pour l'équipe.
Comment procéder pour effectuer la partie « boucle sur les doublons trouvés et à partir de là, trouver la ligne précédente qui a été dupliquée, puis supprimer cette ligne » de votre suggestion ? Je pense que cela pourrait être la dernière pièce manquante pour mettre tout cela ensemble.