從包含原始值和新值的查找表建立 JMP 12 Recode 腳本<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我今天在 JMP 主部落格上發布了這篇文章。Jeff 建議在我的社群部落格上分享這些內容也會很有幫助,這樣也可以在這裡搜尋。從早期開始,我就經常使用改進後的 JMP 12 Recode 平台,發現它對我的許多資料清理專案很有幫助。但作為早期用戶開始也有其缺點......要找出原因,請繼續閱讀!
我最近使用了一個JMP 插件我寫信導入我的全套 BodyMedia FIT 食物日誌資料文件,包括從 2010 年 12 月 21 日到我在該軟體中記錄膳食的最後一天(2015 年 3 月 29 日)的資料。 我的最終資料表包含 39,942 行食品名稱。 自從去年 3 月底我將設備從 BodyMedia 更換為 FitBit Charge HR 以來,我一直保留著 MyFitnessPal 食物日誌中的 60 天(1,551 行)數據,再加上我有近 41,000 行食物日誌數據!
我為此資料表準備資料的過程中的一個重要步驟是透過將相似的項目合併到單一值下來清理食品項目名稱。 如果沒有這個清理步驟,我最終會得到許多真正代表相同食品的獨特項目名稱。 例如,我吃了各種不同的黑巧克力,並指出了可用的正確品牌名稱,但經常不得不替換,因為 BodyMedia 資料庫中沒有許多特定的項目。 這使得確切的名稱變得更沒有意義,所以我覺得將所有品種聚合在一個名稱下是有意義的(“糖果棒,黑巧克力”)。
我在早期採用者安裝中使用 Recode 平台清理了去年秋天在 Discovery Summit 上展示的食物日誌資料表聯合管理計劃12. 當時,Recode 缺乏新的「儲存/載入腳本」選項,我現在所有資料清理專案都依賴這些選項。 相反,我對我的項目進行了重新編碼,並創建了一個查找表,其中列出了我的食物日誌中出現的每個獨特項目的原始名稱和重新編碼名稱。 每次我向食物日誌中新增項目時,我都會更新此查找表。 我的查找表的一部分如下所示。

在我離開去參加之前QS15上個月在舊金山舉行的會議上,我利用 JMP 公式列創建了一個腳本,該腳本可以重新加載到「重新編碼」對話框中以重新捕獲我的專案分組,以便我可以更新它們。 這使得重新編碼新的食品名稱並保存更新的腳本變得簡單,以防我將來需要調整我的工作。
因為我發現這個腳本創建技巧非常有用,所以我想我會分享它。 如果您過去曾使用過類似的查找表方法,您可能會認為在 Recode 中重新建立您的方法需要大量工作。 使用此範例,您也可以從查找表轉換為 JMP 12 Recode 腳本,您可以在「重新編碼」對話方塊中重新載入該腳本並進行更新以適應新資料。 最後,您可以輕鬆地從包含原始值和重新編碼值的最終資料表重新建立新版本的查找表。
我需要將我的腳本建構成與標準 Recode 腳本相同,因此我開啟了為相關專案儲存的腳本。 若要儲存範例重新編碼腳本,您可以在開啟的重新編碼對話方塊視窗中建立一些群組,然後按一下平台的紅色小三角並選擇「腳本」>「儲存到檔案」。
我打開包含 Recode 腳本的 JSL 文件,並觀察到它以開始更新表的調用開始,以及一組將原始項目名稱與重新編碼的名稱配對的匹配語句。

在腳本的末尾,它包含列名稱和資料更新結束。

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

我將公式列複製並貼上到腳本視窗中,然後在腳本的頂部和底部添加正確的語句和變數名稱。
當我在“重新編碼”對話框中重新加載它時,我的腳本創建瞭如下分組:

然後,我可以新增到現有群組、建立新群組或編輯代表性群組名稱。 我使用類似的方法創建了一個腳本版本,用於將項目重新編碼為食物分組,因為我已將食物組包含在查找表中並希望對我的新項目進行分組。
我遇到的一個問題是,一種食品名稱包含一個雙引號字元 (“),我必須將其替換,這樣它就不會幹擾項目名稱的帶引號的字串。
如果您還沒有嘗試過 JMP 12 Recode 平台,我希望您能嘗試一下。 無論您是開始一個新專案還是將舊專案轉換為使用平台,我想您都會很高興!如果您已經在使用它,我很有興趣了解您正在從事的專案類型!