Dans un précédent article de blog , J’ai introduit le sujet de mon affiche électronique JMP Discovery Summit 2014 intitulée « Analyse des données personnelles sur l'alimentation et la condition physique avec JMP ” et partagé mes intérêts dans les projets d’analyse d’auto-évaluation quantifiée (QS). Pour mon projet d’affiche, j’ai exporté deux types de fichiers de données différents à partir du logiciel Activity Manager basé sur le Web en BodyMedia® et écrit des scripts JSL (JMP Scripting Language) pour importer, formater et nettoyer mes données afin de les analyser et les visualiser plus en profondeur dans JMP. J'espère que vous avez pu vous joindre à moi pour en savoir plus à la conférence de Cary, mais sinon, vous pouvez vous connecter au Communauté d'utilisateurs JMP et vérifier un PDF de mon e-poster dans la section Discovery Summit 2014. (L’appartenance à la communauté des utilisateurs est gratuite et constitue un excellent moyen d’apprendre des utilisateurs JMP du monde entier!)
Aujourd'hui, je vais vous expliquer comment j'ai utilisé JSL pour importer et combiner un ensemble de fichiers Excel à plusieurs feuilles de calcul contenant des informations récapitulatives sur l'activité et les calories. Le logiciel Activity Manager exporte également les fichiers PDF Food Log, que je couvrirai dans mon prochain article de blog. Au fait, j'ai téléchargé un ajouter à dans l’échange de fichiers JMP que vous pouvez utiliser pour importer vos propres fichiers de résumé d’activité et de journal des aliments BodyMedia® dans JMP. Il comprend également un complément bonus qui importe des fichiers CSV que vous pouvez télécharger à partir du site Web de journalisation des aliments MyFitnessPal, à l’aide d’une extension Chrome.
Début août, j'ai exporté près de 50 fichiers de résumé d'activité et 50 fichiers de journal alimentaire couvrant la période du 20/12/10 au 28/07/14. Les données de résumé d'activité sont enregistrées dans des classeurs Excel contenant six feuilles de calcul différentes, mais je souhaitais importer des données provenant uniquement des cinq premières: résumé, activité, repas, sommeil et poids. Vous pouvez voir les détails du contenu des autres feuilles de calcul dans mon e-poster .

La plupart de mes fichiers de résumé d'activité Excel contenaient quatre semaines de données, même si certains couvraient moins de semaines. Tous les fichiers avaient des en-têtes de colonne sur la ligne 5 et la plupart avaient 28 lignes de données sur les quatre premiers onglets, bien que le nombre de lignes sur le cinquième onglet (Poids) ait varié. Avant 2013, j'avais saisi manuellement les mesures de poids dans le gestionnaire d'activités. En janvier 2013, j'ai commencé à utiliser un Withings Analyseur de corps intelligent balance, qui télécharge les mesures de poids sans fil dans son propre logiciel Web et les partage automatiquement via une intégration tierce avec Activity Manager.
J'ai décidé de créer un script pour le processus d'importation après avoir importé deux fois de manière interactive mes fichiers de données, à environ un an d'intervalle. La deuxième fois, l’importation interactive prenait plus de temps, car j’avais encore plus de fichiers sur lesquels travailler. Étant donné que j'accumule de nouvelles données chaque jour, mon nombre de fichiers augmentera toujours avec le temps. Après la deuxième importation, j'ai formaté mes colonnes et ajouté des formules au tableau de données combiné, pour le comparer au tableau de mon premier import et me rendre compte que j'avais oublié plusieurs étapes importantes.
Tandis que je revenais sur mes pas pour terminer les étapes que j'avais manquées, j'ai commencé à réfléchir à la manière dont les scripts pourraient rendre le traitement de tous mes fichiers beaucoup plus simple et rapide. Si le processus d'importation était plus facile, j'examinerais les nouvelles données beaucoup plus souvent. Heureusement, j'ai découvert que même un scripteur novice comme moi pouvait écrire le JSL pour importer et combiner mes fichiers.
J'ai commencé avec des scripts source (ajoutés automatiquement aux tables de données JMP lors de l'importation interactive) et des exemples JSL issus de la documentation en ligne et des forums de discussion. J'ai bouclé sur tous mes fichiers en utilisant une stratégie inspirée d'un exemple d'importation de fichier texte dans SESUG article rédigé par Michael Hecht, développeur de JMP. En tant qu'expert Mac de longue date chez JMP, Michael est réputé pour son code élégant et de grande qualité dans toutes les langues. Pourquoi ne pas emprunter auprès d'un maître?
Je me suis heurté à des difficultés en combinant mes données dans une seule table unifiée. L'un des problèmes que je devais gérer avant l'importation était que la colonne Date de l'onglet Veille contenait une plage journalière plutôt qu'un seul jour, comme toutes les autres feuilles de calcul, ce qui m'empêchait de la fusionner directement sans étape de prétraitement. Par exemple, une valeur de 12/20 / 2012-12 / 21/2012 indique la nuit de sommeil qui a commencé le 20/12/14 et s'est terminée le matin du 21/12/14. J'ai analysé la date du deuxième jour à l'aide de l'éditeur de formules JMP et de la fonction de modèle de caractère JMP Word.

Après avoir créé la formule de manière interactive, j'ai ajouté du code à mon script pour rendre ces étapes facilement répétables avec l'aide de JSL. Obtenir le script commander. Exécuter la commande MyColName << Obtenir le script; Dans la colonne Date de l'onglet Veille, un extrait de clé de JSL a été imprimé dans le journal de JMP, que j'ai ajouté à mon script pour automatiser cette étape. Dans mon tableau final, la valeur hr: m affichée dans la colonne Sommeil représentait combien de temps j'avais dormi avant de me réveiller ce matin-là.
Il y avait des informations supplémentaires dans mes fichiers d'entrée que je ne voulais pas inclure dans ma table JMP finale. Les totaux, les moyennes et les objectifs caloriques ont été résumés au bas de toutes mes feuilles de calcul (lignes 36 à 39 de l’illustration du tableau ci-dessus). J'ai ajouté des étapes à mon script pour filtrer ces résumés, les lignes d'informations situées au-dessus des en-têtes de colonnes et les lignes vierges. Au total, la version du tableau de données sur les activités que j'ai utilisée pour mon affiche du Sommet de la découverte contenait 1 316 lignes de données quotidiennes sur les calories consommées et brûlées, les mesures d'activité, le sommeil et le poids.
Ma table de données n'était pas encore prête pour l'analyse. Les colonnes numériques de ma table contenant des durées et des pourcentages qui n'ont pas été formatés correctement lors de l'importation. J'ai ajouté des formats, des codes de valeur manquants et des types de modélisation en tant que propriétés de colonne de manière interactive. J'ai utilisé la fonctionnalité Transformer la colonne de ma colonne Date pour ajouter rapidement de nouvelles variables Date / Heure telles que Année, Mois, Semaine et Jour à ma table, puis je les ai ajoutées à mon script pour automatiser ces étapes. J'ai également ajouté une nouvelle colonne de formule au tableau (Calories brûlées - Calories consommées) pour représenter mon déficit / excès calorique pour un jour donné.
Si vous avez des fichiers de résumé d’activité BodyMedia® enregistrés au format Excel, vous pouvez télécharger mon ajouter à à partir de l’échange de fichiers pour effectuer une importation pointer-cliquer de vos propres fichiers dans JMP. Ce complément prend en charge le type de fichier Résumé d'activité que je viens de décrire, les fichiers du journal des aliments BodyMedia® enregistrés en tant que texte, ainsi que les fichiers texte du journal des aliments que vous pouvez exporter depuis le populaire (et gratuit) MyFitnessPal à l'aide d'une extension Chrome.
Un merci tout spécial à Audrey Shull, responsable des tests JMP, et à Melanie Drake, rédactrice technique, pour leurs suggestions de script et leur aide pour les tests de complément! Restez à l'écoute pour mon prochain article de blog, dans lequel je décrirai comment j'ai automatisé l'importation des fichiers de journal des aliments BodyMedia® à l'aide de JSL.
Ce que nous lisons | Soi Quantifié Quantifié a écrit:
[¦] Utilisation de JSL pour importer les données du moniteur BodyMedia Fit Activity dans JMP par Shannon Conners. Nous avons présenté l’impressionnant travail de visualisation de Shannon dans notre édition du 20 septembre de What We Are Reading. Elle revient ici avec une explication détaillée sur la façon d'explorer les données BodyMedia et MyFitnessPal dans JMP. Même en tant qu'utilisateur non-JMP, j'ai été ravi de découvrir l'extension Chrome MyFitnessPal Data Downloader qu'elle utilisait pour télécharger ses données de repas. [â]