在這個關於“JMP 和 Excel – 永無止境的故事?”的博客系列中 我談到了導入電子表格數據,並描述了從電子表格(或有時還有其他來源)導入數據時的前幾個典型挑戰。 這次我將重點介紹日期和日期格式,這是我在 中列出的第三個主題第2部分.
Day 和 Month 會被錯誤解釋
當您將諸如“10/11/2012”之類的日期粘貼到數據表中時,JMP 可能需要解決 m/d/y 和 d/m/y 格式之間的歧義:
- “10/11/2012”是十月還是十一月? 如果您為列分配日期格式,則不會產生歧義。 但是:Excel 中的特殊格式或某些自定義格式(例如帶有 * 前綴的格式)並不總能被識別
Excel formatExcel formatExcel formatExcel formatExcel formatExcel格式
- JMP 的默認猜測是 m/d/y,除非第一個粘貼值只能是 ad/m/y 日期! 要解決此問題,您要么預先指定正確的日期格式,要么在第一行中使用不同的虛擬日期值,例如 13/1/99。
- 所有更改和導入都基於這樣一個事實,即與您選擇的格式不匹配的值將被設置為缺失。 您將收到一個 JMP 警告。
- 在某些情況下,JMP 會為列選擇一種字符格式。 您可以稍後將字符列更改為數字數據列。 讓我們更深入地討論一下:Column info 允許您更改日期格式。 您可以設置輸入和輸出格式。 確保你做對了:
Changing Date formats in JMP Column Info with Input and output formatChanging Date formats in JMP Column Info with Input and output formatChanging Date formats in JMP Column Info with Input and output formatChanging Date formats in JMP Column Info with Input and output formatChanging Date formats in JMP Column Info with Input and output format使用輸入和輸出格式更改 JMP 列信息中的日期格式)
- 請注意:在 Windows 和 Macintosh 之間,小數點後的位數和導入數據的日期格式可能不同。 例如,“10/25/2012”在 Macintosh 上可能會被格式化為“25Oct2012”。 在 Macintosh 上,列可能作為字符列導入,但在 Windows 上則不然。
- 如前所述,並非所有格式都可以識別,因此顯示的導入數據可能與預期不同。 然而,完整的數據將在內存中,因此顯示的變化將顯示完整的信息。 如果未預先指定,您也可以在此處將日期格式更改為時間或持續時間格式,反之亦然
- 在某些情況下,最簡單的方法是將 JMP 中的顯示語言首選項設置更改為英語或德語。 你可以看到我之前的“如何”博文. 但這並不總是能解決所有情況。
無法識別日期格式
有時日期格式難以識別,JMP 會將它們作為字符導入。 示例可以自定義日期,包括日曆週、季度等。 在這種情況下,您可能需要使用公式創建新列以提取特定信息以供進一步分析。 我想舉個例子:

可以使用公式編輯器或 JMP 腳本語言將“KW14/2016”轉換為兩個新列“weekNr”和“year”。 公式編輯器是完成這些任務的好幫手,還有 WORD 或其他字符函數,當然您也可以使用 REGEX,通常這需要對此函數有一定的了解。 您可以使用此腳本(或公式編輯器中的模擬)簡單地提取年份:
Num(Word(2, :MyDate, "/"))
或者
Num(Right(:MyDate, 4))
還有其他你可能會覺得有價值的方式,我把它留給你的喜好。
定義您的日、月和其他日期信息
傳輸作為字符導入的日期數據的另一種方法是使用 Brady Brady 的“數據表工具“ 加入。 在那裡你將有一個很好的功能來處理這些情況。 讓我們簡要地看一下它,您可以在 Brady 本身的描述和博客中找到更多信息。 假設您有此數據表中的數據:

日期列是字符格式,因為 JMP 不知道該格式。 因此,更改數據和輸入格式將不會在此處起作用,從而導致缺失值(無論您使用的是哪種語言設置)。在加載項菜單中選擇“數據表工具”=>“特殊公式列”=>“自定義日期公式編寫器”,然後執行以下操作:
- 選擇要更改的表和列
- 定義分隔符,這裡是下劃線,它會復製到字符串中的其他地方(注意你可以選擇任何你喜歡的交互方式——我個人最喜歡的)
- 指定年份的數字格式(例如,如果您有兩位數的年份,則很重要)
- 將每個分數映射到它應該代表的內容(天、分鐘、年……)
- 月份的重要格式是它的格式(數字、3 個字母或全名)
- 告訴輸出格式應該是什麼,然後按“構建公式列”。
- 結果是新公式列“NewDate”中的干淨數字日期數據,您可以在其中查看公式並了解如何手動完成轉換

這已經在很多情況下幫助了我。 雖然不是全部。 首先,它不適用於德語中 October 的本地名稱。 其次,我有一個案例,數據庫中的數據沒有被正確讀入,結果導入後已經缺少值。 在那裡我們可以解決使用我已經提到的語言設置更改。 可能還有檢查數據庫連接以及它如何獲取數據的可能性,但是如果不是您的機器,您可以輕鬆地與開發人員和 IT 人員共享,那麼這需要深入研究並且很難 
接下來是什麼?
我希望這將是對您的工作有用的信息,並且我很高興收到您關於這些提示如何為您工作的反饋。 在接下來的兩篇(也可能是最後一篇)JMP 和 Excel 系列博文中,我將討論要導入的數據中的數據質量問題。 特別是我應該從哪裡開始校對和編輯數據——在 Excel 中或導入後。 JMP 還是 JMP,這是個問題;)
此外,我還將討論將數據導入 JMP 的最佳實踐以及有助於參考的更多資源。
你的經驗是什麼? 你面臨什麼挑戰?
我很高興向您學習,看看您如何克服這些挑戰,以及我的建議是否能幫助您減少導入(電子表格)數據的挑戰。
希望修復 JMP 中 M/D/Y 與 D/M/Y 的導入問題:
CSV 匯入強制 MDY 或 DMY 日期格式