Création d'un script JMP 12 Recode à partir d'une table de recherche contenant des valeurs originales et nouvelles<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'ai publié cette entrée sur le blog principal de JMP aujourd'hui.Jeff a suggéré qu'il serait utile de partager également ce contenu sur mon blog communautaire, afin qu'il soit également consultable ici.J'utilise beaucoup la plate-forme JMP 12 Recode remaniée depuis ses débuts et je l'ai trouvée utile pour un grand nombre de mes projets de nettoyage de données.Mais commencer en tant qu'utilisateur précoce avait ses inconvénients... pour savoir pourquoi, lisez la suite !
J'ai récemment utilisé un Complément JMP J'ai écrit pour importer mon ensemble complet de fichiers de données de journal alimentaire BodyMedia FIT, y compris les données du 21 décembre 2010 jusqu'au dernier jour où j'ai enregistré mes repas dans ce logiciel, le 29 mars 2015. Mon tableau de données final contenait 39 942 lignes de noms d’aliments. Combinés aux 60 jours (1 551 lignes) de données de mon journal alimentaire MyFitnessPal que je conserve depuis que j'ai changé d'appareil de BodyMedia à un FitBit Charge HR fin mars dernier, j'ai près de 41 000 lignes de données de journal alimentaire !
Une étape essentielle de mon processus de préparation des données pour ce tableau de données a été de nettoyer les noms des aliments en consolidant les éléments similaires sous une seule valeur. Sans cette étape de nettoyage, je me retrouve avec de nombreux noms d’articles uniques qui représentent réellement le même aliment. Par exemple, j'ai mangé une variété de chocolats noirs différents et j'ai indiqué les noms de marque corrects lorsqu'ils étaient disponibles, mais j'ai souvent dû les remplacer car de nombreux articles spécifiques n'étaient pas disponibles dans la base de données BodyMedia. Cela rendait les noms exacts encore moins significatifs, j'ai donc pensé qu'il était logique de regrouper toutes les variétés sous un seul nom (« Candy Bar, Dark Chocolate »).
J'ai nettoyé le tableau de données du journal alimentaire que j'avais présenté au Discovery Summit l'automne dernier en utilisant la plateforme Recode dans une installation précoce de JMP 12. À l'époque, Recode ne disposait pas des nouvelles options de sauvegarde/chargement de script sur lesquelles je compte désormais pour tous mes projets de nettoyage de données. Au lieu de cela, j'ai recodé mes articles et créé une table de recherche répertoriant les noms originaux et recodés pour chaque élément unique apparaissant dans mon journal alimentaire. J'ai mis à jour cette table de recherche chaque fois que j'ajoutais de nouveaux éléments à mon journal alimentaire. Une section de ma table de recherche est présentée ci-dessous.

Avant de partir pour assister au QS15 conférence à San Francisco le mois dernier, j'ai profité des colonnes de formules JMP pour créer un script qui pouvait être rechargé dans la boîte de dialogue Recoder pour récupérer mes regroupements d'éléments afin de pouvoir les mettre à jour. Cela a simplifié le recodage des nouveaux noms d'aliments et l'enregistrement du script mis à jour au cas où j'aurais besoin de peaufiner mon travail à l'avenir.
Puisque j’ai trouvé cette astuce de création de script si utile, j’ai pensé la partager. Si vous avez utilisé une approche de table de recherche similaire dans le passé, vous pensez peut-être qu'il faudrait beaucoup de travail pour recréer votre approche dans Recode. À l'aide de cet exemple, vous pouvez également passer d'une table de recherche à un script JMP 12 Recode que vous pouvez recharger dans la boîte de dialogue Recoder et mettre à jour pour accueillir de nouvelles données. En fin de compte, vous pouvez facilement recréer une nouvelle version de votre table de recherche à partir de votre table de données finale contenant les valeurs originales et recodées.
J'avais besoin de structurer mon script pour qu'il soit identique à un script Recode standard, j'en ai donc ouvert un que j'avais enregistré pour un projet connexe. Pour enregistrer un exemple de script Recode, vous pouvez créer des groupes dans une fenêtre de dialogue Recode ouverte, puis cliquer sur le triangle rouge de la plateforme et choisir script > Enregistrer dans un fichier.
J'ai ouvert le fichier JSL contenant le script Recode et j'ai observé qu'il commençait par un appel pour commencer la mise à jour de la table et un ensemble d'instructions de correspondance associant le nom de l'élément d'origine au nom recodé.

À la fin du script, il incluait le nom de la colonne et la fin de la mise à jour des données.

Pour remplir la liste des noms originaux et recodés appariés situés entre les sections de début et de fin, j'ai créé une nouvelle colonne de formule dans ma table de recherche contenant les versions citées du nom de l'élément d'origine et du nom de l'élément recodé.

J'ai copié et collé la colonne de formule dans une fenêtre de script, puis j'ai ajouté les instructions correctes et les noms de variables en haut et en bas du script.
Lorsque je l'ai rechargé dans la boîte de dialogue Recoder, mon script a créé des regroupements comme celui-ci :

Je pourrais ensuite ajouter des groupes existants, en créer de nouveaux ou modifier les noms des groupes représentatifs. J'ai utilisé une approche similaire pour créer une version de mon script permettant de recoder les éléments en groupes d'aliments, car j'avais inclus des groupes d'aliments dans ma table de recherche et je souhaitais regrouper mes nouveaux éléments.
Un problème que j'ai rencontré était qu'un nom d'aliment incluait un guillemet double («) que j'ai dû remplacer afin qu'il n'interfère pas avec les chaînes entre guillemets des noms d'articles.
J'espère que vous essayerez la plateforme JMP 12 Recode si ce n'est pas déjà fait. Que vous démarriez un nouveau projet ou que vous convertissiez un ancien pour utiliser la plateforme, je pense que vous serez ravi !Si vous l'utilisez déjà, je serais intéressé de connaître le type de projets sur lesquels vous travaillez !