近年來,越來越多的JMP用戶正在處理所謂的大數據,例如每秒從感測器獲取的數據、具有許多參數的製造數據以及基因組數據。
如果資料量很大,檔案就會更大,需要更多的磁碟空間。
JMP原本有一個在儲存資料表時壓縮檔案的功能,但最新版本JMP 18增加了壓縮字元類型列的功能。透過使用此功能,您可以減少檔案大小並節省記憶體。

在本部落格中,我們將介紹如何在 JMP 18 中壓縮列、解釋內部壓縮機制,以及在壓縮多種類型的資料時比較檔案大小。
緊湊字元類型列
在討論此功能時,需要注意的是,只有字元類型列可以被壓縮。數字類型列無法壓縮。
下面顯示的數據*記錄了東京的房地產價格,大約有 400,000 行和 38 列。在此,我們壓縮指示區域的“區域”列。
壓縮特定字元類型列的操作
- 選擇“區域”列,然後選擇“列”>“列資訊”。
- 在 JMP 18 中,如果資料類型為“字元”,您可以指定子類型。預設為 [Normal],但將其變更為[Compact] 。

除了“地區”之外,該資料還包括各種字串,例如“類型”和“縣”。如果您想一次壓縮所有這些,最好使用“列管理器”,這也是 JMP 18 中的新功能。
如何使用列管理器一次壓縮多個字串
- 選擇列 > 列管理員(或按一下列面板中的圖示)。
- 按一下資料列管理器頂部的「類型」項目可依類型(字母、數字)排序。
- 選取所有類型為字母(寫為「ABC」)的列,按住Ctrl鍵,按一下「類型」右側的項目,然後選擇[緊湊] 。

對於壓縮文字類型的列,「列」面板中列名稱的右側將新增一個圖標,如下所示。

儲存使用上述步驟壓縮的資料表,並比較壓縮前後的檔案大小。

透過壓縮 130MB 數據,大小減少到 67.1M,大約是一半大小。對於那些擔心磁碟空間的人來說是個好消息!
請注意,帶有壓縮字串的資料表無法在 JMP 17 或更早版本中開啟。這只是可在 JMP 18 中使用的資料表。
如何壓縮列
那麼,它是如何壓縮字串的呢?
壓縮後,它在內部儲存在兩種資料結構中:字串儲存和行儲存。
例如,在上面的東京資料中,有一個名為「Municipality」的字串,表示屬性所在的區或城市,但每個不同的字串都儲存在字串儲存中,其索引儲存在行儲存中。

因此,透過壓縮具有長字元或重複資料值的列,預計會減少檔案大小。
相反,透過為每行分配唯一的 ID 號碼來壓縮識別資料的字串可能不會有效。例如,在100行患者資料中,如果有一個ID列,其值為(P1,P2,...,P100)等值來識別患者,那麼它將具有唯一的值,沒有重複,所以你不會得到任何好處。
下面顯示了一些 JMP 範例資料的字串壓縮結果。

某些檔案的大小已變小,而某些資料(例如「Probe.jmp」)並未從壓縮中受益。
實際上,即使壓縮了幾MB的文件,文件大小變小,也不會節省磁碟空間,並且不會因為內存大小的節省而體驗到任何性能提升。
好處是當您壓縮幾十兆位元組或更多的資料時。
如果您的資料量很大,字串較多,請嘗試壓縮它,看看檔案大小是否會變小。
如何始終將字元類型列開啟為緊湊列
到目前為止,我們已經介紹瞭如何透過開啟 JMP 資料表來壓縮字串,但還有一個設定可以在您在 JMP 中開啟資料時自動壓縮字串。
從 JMP 功能表列中,開啟 [檔案] > [首選項],然後選取「常規」類別中的「將字元類型列開啟為緊湊列」 。

透過此設置,不僅 JMP 資料表,Excel、csv、txt 等檔案在 JMP 中開啟時也會被壓縮。
*資料來源 Kaggle,日本房地產價格
日本房地產價格 (kaggle.com)
*相關影片(日文)
「JMP 18」對業務有用的新功能〜數據表,報告版本(日語)〜 - JMP 用戶社區
by 増川直裕(JMP Japan)
Naohiro Masukawa - JMP 使用者社區