In un precedente post sul blog , Ho presentato l'argomento del mio e-poster JMP Discovery Summit 2014 intitolato " Analisi dei dati personali di dieta e fitness con JMP " e ho condiviso i miei interessi in progetti di analisi dell'auto quantificato (QS). Per il mio progetto di poster, ho esportato due diversi tipi di file di dati dal software Activity Manager basato sul web BodyMedia® e ha scritto script JMP Scripting Language (JSL) per importare, formattare e pulire i miei dati per ulteriori analisi e visualizzazioni in JMP. Spero che tu sia stato in grado di unirti a me per ascoltare di più alla conferenza di Cary, ma in caso contrario, puoi accedere a Community utente JMP e controlla a PDF del mio e-poster nella sezione Discovery Summit 2014. (L'iscrizione alla Community degli utenti è gratuita ed è un ottimo modo per imparare dagli utenti di JMP in tutto il mondo!)
Oggi condividerò il modo in cui ho utilizzato JSL per importare e combinare un set di file Excel a più fogli di lavoro contenenti informazioni di riepilogo di attività e calorie. Il software Activity Manager esporta anche i file PDF Food Log, che tratteremo nel mio prossimo post sul blog. A proposito, ho caricato un aggiungere a JMP File Exchange che è possibile utilizzare per importare i propri file BodyMedia® Riepilogo attività e Registro alimenti in JMP. Include anche un componente aggiuntivo bonus che importa file CSV che è possibile scaricare dal popolare sito Web di registrazione cibo MyFitnessPal utilizzando un'estensione di Chrome.
Agli inizi di agosto, ho esportato quasi 50 file Riepilogo attività e 50 file Registro alimenti per il periodo compreso tra il 20/12/10 e il 28/07/14. I dati di Riepilogo attività vengono salvati in cartelle di lavoro di Excel contenenti sei fogli di lavoro diversi, ma ero interessato all'importazione di dati solo dai primi cinque: Riepilogo, Attività, Pasti, Sospensione e Peso. Puoi vedere i dettagli dei contenuti degli altri fogli di lavoro in il mio e-poster .

Gran parte del mio riepilogo delle attività I file di Excel contenevano quattro settimane di dati, sebbene alcuni riguardassero meno settimane. Tutti i file avevano intestazioni di colonna sulla riga 5 e la maggior parte aveva 28 righe di dati sulle prime quattro schede, anche se il numero di righe nella quinta scheda (Peso) variava. Prima del 2013, ho inserito le misurazioni del peso manualmente in Activity Manager. Nel gennaio 2013, ho iniziato a usare a Withings Smart Body Analyzer scala, che carica le misurazioni del peso in modalità wireless nel proprio software basato sul Web e le condivide automaticamente tramite l'integrazione di terze parti con Activity Manager.
Ho deciso di sceneggiare il processo di importazione dopo aver importato in modo interattivo i miei file di dati due volte, a circa un anno di distanza. L'importazione interattiva è stata più dispendiosa in termini di tempo la seconda volta perché avevo ancora più file con cui lavorare. Poiché accumulo nuovi dati ogni giorno, il mio numero di file crescerà sempre nel tempo. Dopo la seconda importazione, ho formattato le mie colonne e aggiunto le formule alla tabella dei dati combinata, solo per confrontarla con la tabella dalla mia prima importazione e ho capito che avevo dimenticato diversi passaggi importanti.
Mentre tornavo indietro per completare i passaggi che avevo perso, ho iniziato a considerare come lo scripting potesse rendere la rielaborazione di tutti i miei file molto più semplice e veloce. Se il processo di importazione fosse più semplice, guarderei i nuovi dati molto più spesso. Fortunatamente, ho scoperto che anche uno script principiante come me poteva scrivere il JSL per importare e combinare i miei file.
Ho iniziato con gli script di origine (aggiunti automaticamente alle tabelle di dati JMP durante l'importazione interattiva) e gli esempi JSL dalla documentazione online e dai forum di discussione. Ho fatto un ciclo su tutti i miei file usando una strategia modellata dopo un esempio di importazione di file di testo in a SESUG scritto dallo sviluppatore JMP Michael Hecht. Essendo l'esperto Mac di lunga data di JMP, Michael è ben noto per il suo codice di alta qualità ed elegante in tutte le lingue, quindi perché non prendere in prestito da un master?
Mi sono imbattuto in alcuni problemi mentre lavoravo per combinare i miei dati in un'unica tabella unificata. Uno che dovevo gestire prima dell'importazione era che la colonna Data nella scheda Sospensione conteneva un intervallo durante la notte piuttosto che un singolo giorno come tutti gli altri fogli di lavoro, impedendomi di unirli direttamente senza un passo di pre-elaborazione. Ad esempio, un valore di 12/20 / 2012-12 / 21/2012 indica la notte di sonno iniziata il 20/12/2014 e terminata la mattina del 21/12/2014. Ho analizzato la data del secondo giorno utilizzando l'editor di formule JMP e la funzione del modello di carattere di Word JMP.

Dopo aver creato la formula in modo interattivo, ho aggiunto del codice al mio script per rendere questi passaggi facilmente ripetibili con l'aiuto della JSL Ottieni uno script comando. Esecuzione del comando MyColName << Ricevi script; nella colonna Date della scheda Sleep è stato stampato uno snippet di chiave di JSL nel log di JMP, che ho aggiunto al mio script per automatizzare questo passaggio. Nella mia tabella finale, il valore hr: m visualizzato nella colonna Sleep rappresentava quanto avevo dormito prima di svegliarmi quella mattina.
C'erano ulteriori informazioni nei miei file di input che non volevo includere nella mia tabella JMP finale. Totali calorici, medie e obiettivi sono stati riepilogati in fondo a tutti i miei fogli di lavoro (righe 36-39 nella figura della tabella sopra). Ho aggiunto passaggi al mio script per filtrare questi sommari, le righe di informazioni sopra le intestazioni delle colonne e anche le righe vuote. In totale, la versione della mia tabella di dati sull'attività che ho utilizzato per il mio poster Discovery Summit conteneva 1.316 righe di dati giornalieri sulle calorie consumate e bruciate, misure di attività, misure del sonno e del peso.
La mia tabella dei dati non era ancora pronta per l'analisi. Le colonne numeriche nella mia tabella contenenti durate e percentuali che non sono state formattate correttamente durante l'importazione. Ho aggiunto in modo interattivo formati, codici valore mancanti e tipi di modellazione come proprietà di colonne. Ho usato la funzione di colonna Trasforma nella mia colonna Data per aggiungere rapidamente nuove variabili Date Time come Anno, Mese, Settimana e Giorno alla mia tabella, e quindi aggiunto al mio script per automatizzare tali passaggi. Ho anche aggiunto una nuova colonna formula al tavolo (calorie bruciate-calorie consumate) per rappresentare il mio deficit calorico / eccesso per un dato giorno.
Se si dispone di file di riepilogo attività BodyMedia® salvati in formato Excel, è possibile scaricare il mio aggiungere da File Exchange per eseguire un'importazione point-and-click dei propri file in JMP. Questo componente aggiuntivo supporta il tipo di file Riepilogo attività che ho appena descritto, i file di registro cibo BodyMedia® salvati come testo e anche i file di testo del registro alimenti che è possibile esportare dal popolare (e gratuito) MyFitnessPal con l'aiuto di un'estensione di Chrome.
Un ringraziamento speciale al responsabile dei test JMP Audrey Shull e alla scrittrice tecnica Melanie Drake per suggerimenti sugli script e aiuto per i test aggiuntivi! Restate sintonizzati per il mio prossimo post sul blog, dove descriverò come ho automatizzato l'importazione dei miei file di registro cibo BodyMedia® usando JSL.
Cosa stiamo leggendo | Quantified Self Quantified Self ha scritto:
[â |] Utilizzo di JSL per importare i dati del monitoraggio BodyMedia Fit Activity in JMP di Shannon Conners. Abbiamo presentato l'incredibile lavoro di visualizzazione di Shannon nella nostra edizione del 20 settembre di What We Reading. Torna qui con una completa guida su come esplorare i dati di BodyMedia e MyFitnessPal in JMP. Anche da utente non JMP sono stato felice di scoprire l'estensione Chrome di MyFitnessPal Data Downloader che ha utilizzato per scaricare i suoi dati sui pasti. [â |]