In einem früheren Blogeintrag , Stellte ich das Thema meines E-Posters zum JMP Discovery Summit 2014 mit dem Titel „ Analyse persönlicher Diät- und Fitnessdaten mit JMP ” und teilte meine Interessen in quantifizierten Self (QS) -Analyseprojekten. Für mein Posterprojekt habe ich zwei verschiedene Dateitypen aus der webbasierten Activity Manager-Software von exportiert BodyMedia® und schrieb JSL-Skripts (JMP Scripting Language) zum Importieren, Formatieren und Bereinigen meiner Daten zur weiteren Analyse und Visualisierung in JMP. Ich hoffe, Sie konnten sich an der Konferenz in Cary beteiligen, aber wenn nicht, können Sie sich bei der Konferenz anmelden JMP-Benutzergemeinschaft und check a PDF meines E-Posters im Abschnitt Discovery Summit 2014. (Die Mitgliedschaft in der Benutzer-Community ist kostenlos und ist eine großartige Möglichkeit, von JMP-Benutzern auf der ganzen Welt zu lernen!)
Heute werde ich Ihnen erzählen, wie ich JSL zum Importieren und Kombinieren einer Reihe von Excel-Dateien mit mehreren Arbeitsblättern verwendet habe, die Informationen zu Aktivitäten und Kalorien enthalten. Die Activity Manager-Software exportiert auch PDF Food Log-Dateien, die ich in meinem nächsten Blogbeitrag behandeln werde. Ich habe übrigens eine hochgeladen Add-In zu JMP File Exchange, mit dem Sie Ihre eigenen BodyMedia®-Aktivitätszusammenfassungs- und Lebensmittelprotokolldateien in JMP importieren können. Es enthält auch ein Bonus-Add-In, das CSV-Dateien importiert, die Sie mit einer Chrome-Erweiterung von der beliebten MyFitnessPal-Website für die Lebensmittelprotokollierung herunterladen können.
Anfang August habe ich fast 50 Aktivitätszusammenfassungen und 50 Food Log-Dateien für den Zeitraum vom 20.12.2010 bis zum 28.07.14 exportiert. Daten der Aktivitätszusammenfassung werden in Excel-Arbeitsmappen gespeichert, die sechs verschiedene Arbeitsblätter enthalten. Ich war jedoch daran interessiert, Daten aus den ersten fünf zu importieren: Zusammenfassung, Aktivität, Mahlzeiten, Schlaf und Gewicht. Sie können die Details des Inhalts der anderen Arbeitsblätter in sehen mein e-poster .

Die meisten meiner Excel-Dateien zur Aktivitätszusammenfassung enthielten vier Wochen Daten, obwohl einige weniger Wochen umfassten. Alle Dateien hatten Spaltenüberschriften in Zeile 5 und die meisten hatten 28 Datenzeilen auf den ersten vier Registerkarten, obwohl die Anzahl der Zeilen auf der fünften Registerkarte (Gewichtung) variierte. Vor 2013 habe ich Gewichtsmessungen manuell in den Activity Manager eingegeben. Im Januar 2013 begann ich mit einer Withings Smart Body Analyzer Waage, die Gewichtsmessungen drahtlos in ihre eigene webbasierte Software hochlädt und diese über eine Integration eines Drittanbieters mit dem Activity Manager automatisch freigibt.
Ich beschloss, den Importvorgang nach dem interaktiven Importieren meiner Dateien zweimal im Abstand von etwa einem Jahr zu skripten. Der interaktive Import war beim zweiten Mal zeitaufwendiger, da ich noch mehr Dateien zur Verfügung hatte. Da ich jeden Tag neue Daten sammle, wird meine Anzahl der Dateien mit der Zeit immer größer. Nach dem zweiten Import formatierte ich meine Spalten und fügte der kombinierten Datentabelle Formeln hinzu, um sie mit der Tabelle meines ersten Imports zu vergleichen und zu bemerken, dass ich einige wichtige Schritte vergessen hatte.
Während ich zurückging, um die Schritte zu erledigen, die ich verpasst hatte, überlegte ich mir, wie Skripting meine Dateien wesentlich einfacher und schneller aufbereiten kann. Wenn der Importvorgang einfacher wäre, würde ich häufiger neue Daten betrachten. Glücklicherweise fand ich heraus, dass selbst ein Anfänger wie ich die JSL schreiben konnte, um meine Dateien zu importieren und zu kombinieren.
Ich begann mit Quellenskripten (automatisch beim interaktiven Import zu JMP-Datentabellen hinzugefügt) und JSL-Beispielen aus Online-Dokumentation und Diskussionsforen. Ich habe alle meine Dateien mit einer Strategie überarbeitet, die nach einem Beispiel für das Importieren einer Textdatei in a erstellt wurde SESUG Papier, geschrieben von JMP-Entwickler Michael Hecht. Als langjähriger Mac-Experte bei JMP ist Michael für seinen hochwertigen und eleganten Code in allen Sprachen bekannt. Warum also nicht von einem Master leihen?
Ich stieß bei meiner Arbeit darauf, meine Daten in einer einzigen Tabelle zusammenzufassen. Ich hatte vor dem Import zu tun, dass die Spalte "Datum" auf der Registerkarte "Ruhezustand" einen Übernachtungsbereich enthielt, und nicht einen einzigen Tag wie alle anderen Arbeitsblätter. Dadurch konnte ich sie nicht ohne Vorverarbeitungsschritt direkt zusammenführen. Zum Beispiel zeigte ein Wert vom 20.12.2012 - 21.12.2012 die Schlafnacht an, die am 20.12.14 begann und am Morgen des 21.12.14 endete. Ich habe das Datum des zweiten Tages mit dem JMP-Formeleditor und der JMP-Word-Zeichenmusterfunktion analysiert.

Nachdem ich die Formel interaktiv erstellt hatte, fügte ich meinem Skript Code hinzu, um diese Schritte mit Hilfe der JSL leicht wiederholbar zu machen Holen Sie sich ein Skript Befehl. Befehl ausführen MeinColName << Skript abrufen; In der Spalte "Datum" der Registerkarte "Ruhezustand" wurde ein Schlüsselausschnitt von JSL in das Protokoll von JMP gedruckt, das ich meinem Skript zur Automatisierung dieses Schritts hinzugefügt habe. In meinem letzten Tisch zeigte der in der Schlaf-Spalte angezeigte hr: m-Wert an, wie viel ich vor dem Aufwachen am Morgen geschlafen hatte.
In meinen Eingabedateien gab es zusätzliche Informationen, die ich nicht in meine endgültige JMP-Tabelle aufnehmen wollte. Kalorienwerte, Durchschnittswerte und Ziele wurden unten in allen Arbeitsblättern zusammengefasst (Zeilen 36-39 in der Abbildung der obigen Tabelle). Ich fügte meinem Skript Schritte hinzu, um diese Zusammenfassungen, die Informationszeilen über den Spaltenüberschriften und auch leere Zeilen herauszufiltern. Insgesamt enthielt die Version meiner Aktivitätsdatentabelle, die ich für mein Poster zu "Discovery Summit" verwendete, 1.316 Zeilen täglicher Daten zu verbrauchten und verbrannten Kalorien, Aktivitätsmessungen, Schlaf- und Gewichtsmessungen.
Meine Datentabelle war noch nicht bereit für die Analyse. Die numerischen Spalten in meiner Tabelle enthalten Dauer und Prozentsatz, die beim Import nicht korrekt formatiert wurden. Ich habe interaktiv Formate, fehlende Wertcodes und Modellierungstypen als Spalteneigenschaften hinzugefügt. Ich habe die Umsetzungsspaltenfunktion in meiner Datumsspalte verwendet, um schnell neue Datums- und Uhrzeitvariablen wie Jahr, Monat, Woche und Tag zu meiner Tabelle hinzuzufügen, und dann zu meinem Skript hinzugefügt, um diese Schritte zu automatisieren. Ich fügte der Tabelle außerdem eine neue Formelspalte hinzu (Kalorienverbrauch - Kalorienverbrauch), um mein Kaloriendefizit / -überschuss für einen bestimmten Tag darzustellen.
Wenn Sie BodyMedia® Activity Summary-Dateien im Excel-Format gespeichert haben, können Sie my herunterladen Add-In Über File Exchange können Sie Ihre eigenen Dateien per Mausklick in JMP importieren. Dieses Add-In unterstützt den gerade beschriebenen Aktivitätszusammenfassungs-Dateityp, als Text gespeicherte BodyMedia®-Lebensmittelprotokolldateien sowie Lebensmittelprotokoll-Textdateien, die Sie mit Hilfe einer Chrome-Erweiterung aus dem beliebten (und kostenlosen) MyFitnessPal exportieren können.
Besonderer Dank geht an JMP-Testmanagerin Audrey Shull und die technische Redakteurin Melanie Drake für Scripting-Vorschläge und Add-In-Testhilfe! Bleiben Sie dran für meinen nächsten Blogbeitrag, in dem ich beschreibe, wie ich den Import meiner BodyMedia®-Lebensmittelprotokolldateien mithilfe von JSL automatisiert habe.
Was wir lesen | Quantifiziertes SelfQuantified Self schrieb:
[…] Verwenden von JSL zum Importieren von BodyMedia Fit Activity-Überwachungsdaten in JMP von Shannon Conners. In unserer Ausgabe von What We Reading vom 20. September haben wir Shannon's erstaunliche Visualisierungsarbeiten vorgestellt. Sie kehrt hier mit einer ausführlichen Anleitung zurück, wie Sie BodyMedia- und MyFitnessPal-Daten in JMP untersuchen können. Selbst als Nicht-JMP-Benutzer war ich sehr erfreut über die Chrome-Erweiterung MyFitnessPal Data Downloader, mit der sie ihre Mahlzeitendaten heruntergeladen hat. […]