我最近用了一個 JMP加載項我寫信導入我的整套BodyMedia FIT食物日誌數據文件,包括2010年12月21日的數據,直到2015年3月29日我在該軟件中記錄我用餐的最後一天。我的最終數據表包含39,942行食品名稱。當我將MyFitnessPal食物日誌中的60天(1,551行)數據與我去年3月底將BodyMedia的設備切換到FitBit Charge HR後一直保持一致時,我有近41,000行食物日誌數據!
我的數據準備過程中的一個重要步驟是通過合併單個值下的類似項目來清理食品名稱。如果沒有這個清理步驟,我最終會得到許多真正代表相同食品的獨特商品名稱。例如,我吃了各種不同的黑巧克力,並在可用的地方指出了正確的品牌名稱,但經常不得不替換BodyMedia數據庫中沒有的許多特定物品。這使得確切的名稱更沒有意義,所以我認為將所有品種聚合在一個名稱(“Candy Bar,Dark Chocolate”)中是有意義的。
我清理了去年秋天在Discovery峰會上使用Recode平台在早期採用者安裝中提交的食物日誌數據表 JMP 12。當時,Recode缺少我現在依賴的所有數據清理項目的新保存/加載腳本選項。相反,我重新編碼我的項目並創建了一個查找表,列出了我的食物日誌中出現的每個唯一項目的原始和重新編碼的名稱。每次我在食物日誌中添加新項目時,我都會更新此查找表。我的查找表的一部分如下所示。

在我離開之前參加 QS15 在上個月的舊金山會議上,我利用JMP公式列創建了一個腳本,可以重新加載到Recode對話框中以重新獲取我的項目分組,以便我可以更新它們。這使得重新編碼新的食品名稱變得簡單,並保存更新的腳本,以防我將來需要調整我的工作。
由於我發現這個腳本創建技巧非常有用,我想我會分享它。如果您過去使用過類似的查找表方法,您可能會認為在Recode中重新創建方法會有很多工作。使用此示例,您也可以從查找表轉換為JMP 12 Recode腳本,您可以在“重新編碼”對話框中重新加載該腳本並進行更新以適應新數據。最後,您可以從包含原始值和重新編碼值的最終數據表中輕鬆地重新創建查找表的新版本。
我需要將我的腳本結構化為與標準Recode腳本相同,因此我打開了一個為相關項目保存的腳本。要保存示例Recode腳本,可以在打開的Recode對話框窗口中創建一些組,然後單擊平台的紅色三角形並選擇script> Save to File。
我打開了包含Recode腳本的JSL文件,並觀察到它開始時調用開始更新表,以及一組匹配語句,它們將原始項名稱與重新編碼的名稱配對。

在腳本的末尾,它包含列名稱並結束數據更新。

要填寫在開始和結束部分之間的配對原始和重新編碼的名稱列表,我在查找表中創建了一個新的公式列,其中包含原始項目名稱和重新編碼的項目名稱的引用版本。

我將公式列複製並粘貼到腳本窗口中,然後在腳本的頂部和底部添加了正確的語句和變量名稱。
當我在Recode對話框中重新加載它時,我的腳本創建了這樣的分組:

然後,我可以添加到現有組,創建新組或編輯代表組名稱。我使用類似的方法來創建我的腳本版本,用於將項目重新編碼到食物分組中,因為我在我的查找表中包含了食物組,並且想要將我的新項目分組。
我遇到的一個問題是,一個食品名稱包含一個雙引號字符(“),我必須替換它,以便它不會干擾項目名稱的引用字符串。
如果你還沒有,我希望你能試用JMP 12 Recode平台。無論您是開始新項目還是轉換舊項目以使用該平台,我想您會很高興!