檔案合併目的就是資料整合,透過列合併增加資料總筆數,例如不同年份的資料整合,或是透過欄合併增加欄位數。
有時候資料為了紀錄方便或是避免檔案的訊息量太大太雜,會將不同年份或是不同類型的資訊分開成不同的資料檔儲存。對於即將跨入大數據的讀者,必須要摒棄那種到手的檔案應該要包含所有資訊的概念,因為通常取得的檔案不可能囊括了所有需要的資訊,很大的情況是,訊息分布在不同的檔案。
如果是收案的資料確實可以簡單的依據所需要的資訊設計欄位,但是更多的情況是來自於已經存在的大型資料庫,舉例來說:健保資料庫就是個很好的例子,依據類型可以簡單分成門診、住院、藥局等資料庫,由於資料龐大,因此不同類型的資料又依據年分拆成小檔。所以這時候就會需要用合併來彙整處理好的資料。
合併的概念
以簡單的例子進行操作
假設手上有2種檔案:
1.
參與滿意度調查受試者的基本資料:裡面包含年齡、性別等資訊
2.
2018-2019年生活品質調查結果(這份問卷可於受試者回診時重複施測,屬重複測量的資料):裡面包含每次受訪日期以及問卷填答結果。
接下來,分別以SAS及Python進行操作示範,將檔案進行合併,關於軟體的基本概念可參閱上一篇內容。
以SAS進行列合併(縱向堆疊)
將2018年跟2019年生活品質調查結果合併
proc sort data= y_all; set y_2018 y_2019; run;
在進行set時要注意資料的結構,欄位寬度不同時進行堆疊,會以寫在最前面的為主。舉例來說,如果y_2018的資料Q1欄位長度為1,而y_2019的資料Q1欄位長度設定為2,這兩個檔在進行合併時會以寫在前的欄位長度為主。欄位屬性不同時無法堆疊,例如y_2018的資料Q1欄位為數值格式,y_2019的資料Q1欄位則為文字格式,要set兩個檔案,系統會出現錯誤訊息,因此務必注意欄位屬性是否一致。
以Python進行列合併(縱向堆疊)
將2018年跟2019年生活品質調查結果合併,同樣會用到pandas套件。
留言
張貼留言