Chào các bạn, Có một bạn đã hỏi ad về cách sử dụng lệnh MERGE, ad thấy là lệnh này rất hữu dụng trong việc xử lý dữ liệu trên STATA, vậy nên nhân cơ hội này ad viết luôn bài này để cùng chia sẻ với mọi người. Trong STATA, để ghép nối các dữ liệu với nhau, ta có thể dùng lệnh MERGE hoặc APPEND. Lệnh MERGE thì thường dùng để kết nối dữ liệu theo chiều ngang, còn lệnh APPEND thì thường dùng để kết nối dữ liệu theo chiều dọc. Để dễ hình dung hơn thì các bạn xem hình vẽ dưới đây nhé:
9/15/21, 2:39 PM Lệnh MERGE APPEND để sáp nhập liệu – How to STATA How to STATA A set of guides and tutorials for beginners on using Stata effectively Lệnh MERGE APPEND để sáp nhập dữ liệu Posted on December 3, 2020December 3, 2020 by Chung Mai Chào bạn, Có bạn hỏi ad cách sử dụng lệnh MERGE, ad thấy lệnh hữu dụng việc xử lý liệu STATA, nên nhân hội ad viết để chia sẻ với người Trong STATA, để ghép nối liệu với nhau, ta dùng lệnh MERGE APPEND Lệnh MERGE thường dùng để kết nối liệu theo chiều ngang, lệnh APPEND thường dùng để kết nối liệu theo chiều dọc Để dễ hình dung bạn xem hình vẽ nhé: (https://stataguide.files.wordpress.com/2020/12/merge1.jpg) Tại thời điểm STATA hiển thị liệu Bộ liệu hiển thị, sử dụng gọi liệu master Bộ liệu bạn muốn ghép nối vào gọi liệu using Lệnh APPEND kết nối liệu dựa tên biến, cịn lệnh MERGE kết nối liệu dựa giá trị biến Mình giải thích cụ thể lệnh Lệnh APPEND Giả sử có liệu master using hình minh họa bên Hai liệu có chung biến id Bộ liệu master có id từ đến 10, cịn liệu using có id từ 11 đến 17 Đường dẫn đến liệu sau: Master: C:\How to STATA\master.dta Using: C:\How to STATA\using.dta (https://stataguide.files.wordpress.com/2020/12/master-data.jpg) Dữ liệu master (https://stataguide.files.wordpress.com/2020/12/using-data.jpg) https://stataguide.wordpress.com/2020/12/03/lenh-merge-va-append-de-sap-nhap-du-lieu/ 1/10 9/15/21, 2:39 PM Lệnh MERGE APPEND để sáp nhập liệu – How to STATA Dữ liệu using Mình muốn ghép nối hai liệu vơ chung liệu Mình dùng lệnh sau: use “C:\How to STATA\master.dta”, clear /*lệnh để chắn liệu sử dụng master*/ append using “C:\How to STATA\using.dta” Kết liệu này: (https://stataguide.files.wordpress.com/2020/12/append-nooption.png) Dữ liệu thu sau ghép nối https://stataguide.wordpress.com/2020/12/03/lenh-merge-va-append-de-sap-nhap-du-lieu/ 2/10 9/15/21, 2:39 PM Lệnh MERGE APPEND để sáp nhập liệu – How to STATA liệu master using Khi sử dụng lệnh append, thêm số lựa chọn sau: append using “C:\How to STATA\using.dta”, gen(matching) Khi thêm lựa chọn nghĩa ta tạo thêm biến liệu, ad tạm đặt tên matching Biến matching nhận giá trị giá trị hàng tương ứng liệu từ liệu master, nhận giá trị giá trị hàng tương ứng liệu đến từ liệu using Việc thêm biến giúp dễ kiểm tra lại nguồn liệu append using “C:\How to STATA\using.dta”, keep(id var1 var2 var3) Với lựa chọn keep đưa vào dấu ngoặc đơn biến liệu using mà muốn ghép nối vào liệu master Như ví dụ liệu master có biến id, var1, var2, var3; cịn liệu using có biến id, var1, var2, var3, var4 Nếu ta muốn ghép liệu id, var1, var2, var3 từ liệu using vào master ta thêm vào câu lệnh keep(id var1 var2 var3) append using “C:\How to STATA\using.dta”, force Nếu thêm force vào sau câu lệnh nghĩa bắt buộc STATA ghép nối biến có định dạng khác Ví dụ: liệu master có biến var5 biến có định dạng chuỗi Biến var5 xuất liệu using có định dạng số Nếu ta dùng câu lệnh thơng thường STATA báo lỗi r(106) Ta thêm vào câu lệnh lựa chọn force để lệnh append tiến hành bình thường Tuy nhiên, liệu biến var5 liệu using bị biến bất dùng lệnh append Vậy nên, trước sử dụng lệnh append, nên kiểm tra định dạng biến trước Các biến tên nên chuyển dạng định dạng – dạng chuỗi dạng số Lệnh MERGE Như nói trên, lệnh merge ghép nối liệu việc so sánh giá trị vị trí liệu Mình giả định có liệu mang tên master using trường hợp Có nhiều lựa chọn ghép nối theo lệnh merge bao gồm one-to-one (1:1), many-to-one (m:1), one-to-many (1:m), many-to-many (m:m), one-to-one _n (1:1 _n) Trong đó, lựa chọn ghép nối m:1 1:m phổ biến Lựa chọn m:m 1:1 _n cho kết ghép nối theo thứ tự liệu (dữ liệu hàng số master nối với liệu hàng số using) Hai kiểu ghép nối không nên sử dụng kết ghép nối dễ bị sai sót Trong viết giới thiệu với bạn kiểu ghép nối thơi 1:1, m:1 1:m Trước tiên, có số lưu ý sử dụng lệnh MERGE: – Lệnh merge không yêu cầu phải xếp (sort) liệu trước, dùng lệnh STATA ngầm thực bước xếp này, sau đến bước sáp nhập liệu (merge.) Tuy nhiên, liệu không xếp trước, thời gian STATA xử lý lệnh MERGE lâu tốn nhớ RAM máy tính Vậy nên, tốt hết nên sort liệu trước dùng lệnh MERGE https://stataguide.wordpress.com/2020/12/03/lenh-merge-va-append-de-sap-nhap-du-lieu/ 3/10 9/15/21, 2:39 PM Lệnh MERGE APPEND để sáp nhập liệu – How to STATA – Lệnh MERGE tự động tạo biến với tên gọi _merge để thông báo cho biết có liệu ghép nối liệu không ghép nối Biến có giá trị quan sát xuất liệu master, giá trị quan sát xuất liệu using giá trị quan sát xuất liệu Cụ thể trường hợp dùng lệnh MERGE sau: Kiểu 1:1 (1 liệu master ghép với liệu using dựa theo nhiều biến chung) Giả sử có liệu khám sức khỏe sau: Bộ liệu mang tên cân nặng bao gồm biến id, giới tính, cân nặng, chiều cao; liệu mang tên huyết áp bao gồm biến id, huyết áp, nhịp tim Đường dẫn đến hai liệu sau: Master: C:\How to STATA\cannang.dta Using: C:\How to STATA\huyetap.dta (https://stataguide.files.wordpress.com/2020/12/cannang-data.jpg) Dữ liệu cân nặng (master) https://stataguide.wordpress.com/2020/12/03/lenh-merge-va-append-de-sap-nhap-du-lieu/ 4/10 9/15/21, 2:39 PM Lệnh MERGE APPEND để sáp nhập liệu – How to STATA (https://stataguide.files.wordpress.com/2020/12/huyet-ap.jpg) Dữ liệu huyết áp (using) Chúng ta sáp nhập liệu vào với dựa biến id Lệnh MERGE viết sau: use “C:\How to STATA\huyetap.dta” /*Lệnh để gọi liệu huyết áp – liệu using*/ sort id /*sắp xếp liệu huyết áp theo thứ tự ID tăng dần*/ use “C:\How to STATA\cannang.dta” /*Lệnh để gọi liệu cân nặng – liệu master*/ sort id /*sắp xếp liệu cân nặng theo thứ tự ID tăng dần*/ merge 1:1 id using “C:\How to STATA\huyetap.dta” /*sáp nhập liệu lại với nhau*/ Như vậy, cột huyết áp nhịp tim liệu using sáp nhập vào liệu master Kết liệu sau: https://stataguide.wordpress.com/2020/12/03/lenh-merge-va-append-de-sap-nhap-du-lieu/ 5/10 9/15/21, 2:39 PM Lệnh MERGE APPEND để sáp nhập liệu – How to STATA (https://stataguide.files.wordpress.com/2020/12/merge-3.png) Ta thấy biến _merge tự động hình thành cho biết giá trị sáp nhập giá trị khơng Trong trường hợp 10 dịng liệu đầu khớp giá trị ID hai liệu, dòng liệu cuối cùng, tương ứng với ID 11 12 có liệu liệu using mà Sau chạy câu lệnh trên, ta nhận thông báo sau: (https://stataguide.files.wordpress.com/2020/12/merge-2.png) Thông báo sau sử dụng lệnh Merge Số liệu trùng khớp (matched) ID 10; số liệu không trùng khớp (not matched) Trong từ master từ using Nếu muốn loại bỏ dịng liệu khơng trùng khớp cần dùng lệnh drop if sau: https://stataguide.wordpress.com/2020/12/03/lenh-merge-va-append-de-sap-nhap-du-lieu/ 6/10 9/15/21, 2:39 PM Lệnh MERGE APPEND để sáp nhập liệu – How to STATA drop if _merge != /*loại bỏ quan sát _merge khác – nghĩa liệu không trùng khớp ID*/ Kiểu one-to-many 1:m (1 liệu master ghép nối với nhiều liệu using) Ví dụ để dễ hình dung kiểu liệu là: có liệu kinh tế vĩ mô tỷ lệ lạm phát, tỷ lệ thất nghiệp theo năm liệu tình hình tăng trưởng doanh nghiệp theo năm Chúng ta muốn ghép nối liệu kinh tế vĩ mơ vào liệu doanh nghiệp để đưa biến vĩ mơ vào mơ hình hồi quy Minh họa liệu sau nhé: (https://stataguide.files.wordpress.com/2020/12/doanhnghiep-data.png) Dữ liệu doanh nghiệp – Using https://stataguide.wordpress.com/2020/12/03/lenh-merge-va-append-de-sap-nhap-du-lieu/ 7/10 9/15/21, 2:39 PM Lệnh MERGE APPEND để sáp nhập liệu – How to STATA (https://stataguide.files.wordpress.com/2020/12/vimo-data.png) Dữ liệu vĩ mô – Master Đối với kiểu sáp nhập 1:m liệu vĩ mơ liệu master (1), liệu doanh nghiệp liệu using (m) Điểm chung hai liệu biến year Để merge hai liệu với nhau, ta dùng lệnh sau: use “C:\How to STATA\doanhnghiep.dta” /*gọi liệu using trước*/ sort year /*sắp xếp liệu theo biến chung (year) Nếu có nhiều biến chung sort liệu theo biến chung mà bạn muốn đối chiếu hai liệu sort theo thứ tự ưu tiên xếp*/ use “C:\How to STATA\vimo.dta” /*gọi liệu master*/ sort year /*sắp xếp liệu master theo năm*/ merge 1:m year using “C:\How to STATA\doanhnghiep.dta” /*sáp nhập hai liệu với theo biến year*/ Đây kết sáp nhập liệu: https://stataguide.wordpress.com/2020/12/03/lenh-merge-va-append-de-sap-nhap-du-lieu/ 8/10 9/15/21, 2:39 PM Lệnh MERGE APPEND để sáp nhập liệu – How to STATA (https://stataguide.files.wordpress.com/2020/12/merge-4.png) Kiểu many-to-one m:1 (nhiều liệu master ghép nối với liệu using) Ngược lại, kiểu sáp nhập m:1, liệu master liệu doanh nghiệp có nhiều quan sát có số năm liệu using liệu vĩ mơ năm có quan sát Để sáp nhập liệu, ta thực lệnh sau: use “C:\How to STATA\vimo.dta” sort year use “C:\How to STATA\doanhnghiep.dta” sort year merge m:1 year using “C:\How to STATA\vimo.dta” Bộ liệu sau sáp nhập hồn tồn giống với Ví dụ sáp nhập theo biến chung Giả sử ta có liệu master using sau: (https://stataguide.files.wordpress.com/2020/12/merge-5.png) https://stataguide.wordpress.com/2020/12/03/lenh-merge-va-append-de-sap-nhap-du-lieu/ 9/10 9/15/21, 2:39 PM Lệnh MERGE APPEND để sáp nhập liệu – How to STATA Hai liệu có biến chung pid time Trong trường hợp này, ta thấy liệu, giá trị pid time có nhiều quan sát Vì vậy, dùng kiểu sáp nhập 1:1 Công thức lệnh sau: use “C:\How to STATA\master.dta” merge 1:1 pid time using “C:\How to STATA\using.dta” Tóm lại, sử dụng lệnh merge, cần xem kiểm tra vấn đề sau: Biến chung biến nào? Số quan sát liên quan đến biến chung có lặp lại liệu hay không? Nếu số quan sát nhiều liệu ta dùng kiểu sáp nhập 1:1 Nếu quan sát có lặp lại quan sát biến chung, lại khơng dùng 1:m m:1 Chúng ta tùy chọn liệu master using Nên sort liệu theo biến chung trước dùng lệnh merge Gọi sort liệu using trước đến liệu master Có thể loại bỏ dịng liệu khơng trùng khớp việc loại bỏ quan sát _merge không (bằng 2) Hy vọng chia sẻ hữu ích với bạn chúc bạn sử dụng hai lệnh nhuần nhuyễn Tài liệu tham khảo: Click to access dmerge.pdf (https://www.stata.com/manuals13/dmerge.pdf) Posted in STATA fundamentalsTagged 1:1, 1:m, append, m:1, merge Website Powered by WordPress.com https://stataguide.wordpress.com/2020/12/03/lenh-merge-va-append-de-sap-nhap-du-lieu/ 10/10 ... 2:39 PM Lệnh MERGE APPEND để sáp nhập liệu – How to STATA Dữ liệu using Mình muốn ghép nối hai liệu vô chung liệu Mình dùng lệnh sau: use “C: How to STATA master.dta”, clear / *lệnh để chắn liệu. .. PM Lệnh MERGE APPEND để sáp nhập liệu – How to STATA (https://stataguide.files.wordpress.com/2020/12/huyet-ap.jpg) Dữ liệu huyết áp (using) Chúng ta sáp nhập liệu vào với dựa biến id Lệnh MERGE. .. PM Lệnh MERGE APPEND để sáp nhập liệu – How to STATA – Lệnh MERGE tự động tạo biến với tên gọi _merge để thông báo cho biết có liệu ghép nối liệu khơng ghép nối Biến có giá trị quan sát xuất liệu