我結束了我以前的博文在我的JMP Discovery Summit項目中,當我通過BodyMedia®活動管理器應用程序收集了近四年的食物日誌時,我意識到食品名稱冗餘的程度。雖然我知道我曾經吃過不同種類的某些食物,但複製也是使用關鍵字搜索找到要添加到食物日誌中的正確項目的工件。 我用來搜索給定項目的關鍵字有所不同,我選擇在給定餐點登錄的匹配項目也各不相同,因此我經常為高度相似的食物選擇不同的項目名稱。
最後,我想總結一下我從相關食品中攝取的卡路里數量,以及食品類別消耗的卡路里總量。明智的第一步是減少數據表中冗餘食品名稱的數量。我希望食品項目重新編碼過程盡可能簡單,當然,通過腳本編寫可以重現,這樣我就能用最少的工作處理新數據。
我探索過使用 JMP 11 Recode平台將類似的食品名稱合併為一個清潔值。在開始重新編碼之前,我的數據表包含1,859個獨特的食品名稱。由於食品名稱按字母順序顯示在Recode窗口中,因此我發現找到未按字母順序列出的類似食品項目具有挑戰性。例如,如果我想重命名不同品牌下列出的幾乎相同的物品,我必須首先找到分散在我的物品清單中的所有相關物品(例如,“CHIPS AHOY!耐嚼巧克力餅乾”,“餅乾,巧克力片,商業,12%-17%脂肪,“”傑森的熟食巧克力餅乾,“”PILLSBURY巧克力餅乾,冷藏麵團“)並將它們重命名為常見的清潔價值(例如,”餅乾,巧克力片“)。為了找到所有相關項目,我使用“查找”功能搜索數據表,或使用“數據過濾器”紅色三角形菜單下的“查找”。

找到所有相關項目後,我滾動到Recode窗口中的位置並粘貼到已清理的項目名稱中。在我處理完數據集時,我不小心關閉了Recode窗口而沒有保存我的更改。我沒有重複工作,而是決定探索另一種策略,希望能讓我更快速地對物品進行分類,並輕鬆地將新物品分配給我的食物分組。
我使用了自由文本功能(可在JMP分類平台啟動對話框的“多個”選項卡上找到)從我的食物項名稱中提取唯一單詞列表。我查看了列表以刪除常用詞或非特定詞,並將剩餘詞放入食物類別。然後,我使用JSL循環使用JMP中的PatMatch函數在食品項名稱中掃描這些關鍵字。如果我找到了關鍵字,我將該單詞的類別添加到使用“多響應”列屬性保存的列中以逗號分隔的列表中。
雖然最初我認為這種方法可以簡化新項目的分類,但我的腳本搜索所有關鍵字的所有項目都是非常耗時的。我花了更長的時間來審查所有分類食品並驗證它們是否已根據其中包含的關鍵字進入合理的類別。當我檢查我的處理過的表時,我很驚訝地註意到許多非特定的關鍵字匹配。在一個例子中,“海洋大塊雞肉金槍魚”與肉類(關鍵詞:雞肉)和魚類(關鍵詞:魚類)食物類別相匹配。Coffeemate Non-Dairy Creamer包含關鍵字coffee,導致它被錯誤地分配給CoffeeMilk組。 我意識到我需要在模式匹配之前修復一些原始名稱,並在匹配後清理其他類別列表。由於我需要通過腳本重現每一步,我需要編寫自定義JSL或使用Recode生成數據清理JSL - 所以我決定回到我原來的Recode策略。
就在那個時候,新聘請的JMP開發人員James Preiss開始改造Recode for JMP 12。我與詹姆斯分享了我的食物日誌Recode用例,我的許多挑戰都在他的待辦事項列表中排列了客戶請求。一旦Recode的更新開始在JMP 12每日構建中浮出水面,我用我的食物日誌文件測試它們並與James和Recode測試員Rosemary Lucas共享我的項目列表的子集。我很高興看到我在JMP 11中手動執行的許多步驟與Recode,數據過濾器,查找/替換和JSL腳本的組合都集成到JMP 12中的Recode中。
實際上,早在Recode平台更新完成之前,我就能夠從我的食物項目列表中創建一個清理的,分組的項目名稱表,其時間遠遠少於我嘗試編寫關鍵字匹配問題的腳本。然後,我為每個已清理的食品名稱添加了類別,並通過加入原始項目名稱將它們合併到我的食品日誌數據表中。使用Recode幫我將表中的原始數字(1,859)減少了一半!現在,當我導入新的食物日誌文件時,我會簡單地返回到Recode以對任何新項目進行分類,更新我的項目名稱/類別表,將其與我的數據合併,然後我就可以繼續了。
JMP 12將在2015年3月之前發布,所以我承認我對Recode平台中的許多新功能都有目的地含糊不清。我喜歡Recode的更新,我知道你也會喜歡!(在軟件可用之後,查看有關Recode的詳細博客文章,以及軟件可用之後。)
在我的下一篇博客文章中,我將介紹我為Discovery Discovery海報創建的一些圖表,並展示我是如何借助於 Xan Gregg ,Graph Builder平台的創建者和JMP數據發現小組的負責人。
有關我的海報的更多背景和我對量化自我(QS)數據分析的興趣,請查看第一篇博文在這個系列中。 後續帖子分享了有關我的詳細信息導出我的Excel格式的活動摘要文件和食物日誌文件從BodyMedia®活動管理器軟件中導入並導入JMP。我使用自定義JSL腳本來創建兩個JMP數據表,一個包含1,316行活動數據,另一個包含34,432行近四年的食物項目。我寫了一個JMP 加入從免費的MyFitnessPal網站支持這些數據類型和CSV格式的食物日誌文件。