There are no products in the cart!
-
04 Tháng 01, 2022
-
790 views
Lệnh Merge và Append trong Stata – Hướng dẫn chi tiết
Lệnh Merge và Append trong Stata là gì? Merge và Append là hai lệnh sử dụng để hợp nhất ghép nối 2 file dữ liệu và thêm các biến vào tập dữ liệu trong phần mềm Stata. Việc hợp nhất hai tập dữ liệu yêu cầu cả hai phải có ít nhất một biến chung (hoặc chuỗi hoặc số). Nếu chuỗi, hãy đảm bảo các danh mục có cùng cách viết (tức là tên quốc gia, tỉnh, vùng v.v.) và các biến chung phải có cùng tên.
Khi nhận thấy dữ liệu của mình có nhiều cột và biến giống nhau cần gom lại thì hãy nhớ dùng đến merge và append để ghép nối hợp nhất thành một bộ dữ liệu nhé!
Lệnh merge thì thường dùng để kết nối dữ liệu theo chiều ngang(Tức là bạn có 10 dòng 3 biến sau khi merge sẽ nâng lên 10 dòng 6 biến theo chiều ngang ), còn lệnh append thì thường dùng để ghép nối file theo chiều dọc(Khi bạn có 10 dòng 3 biến thì sẽ nâng lên được 20 dòng 3 biến theo chiều dọc).
Tải stata 14 full crack nếu chưa có phần mềm stata trong máy nhé!
1. Cấu trúc về lệnh Merge và Append trong Stata
Bạn nên biết rằng Stata chỉ có thể hiển thị một tập dữ liệu tại một thời điểm trong cửa sổ. Vì vậy, sẽ có 2 khái niệm mà Stata nhận dạng bộ dữ liệu chính và dữ liệu phụ cần ghép.
Tập dữ liệu đang được hiển thị và đang được sử dụng trong phần mềm được gọi là dữ liệu chính hay master data. Bộ dữ liệu bạn muốn nối vào được gọi là dữ liệu sử dụng hay using data. Xem hình minh hoạ bên dưới để hình dung rõ được cấu trúc 2 lệnh này nhé!
Chú ý Mạnh: Lệnh merge trong Stata để ghép nối file dữ liệu dựa trên giá trị của biến và Lệnh append trong Stata để ghép nối file dữ liệu dựa trên tên biến.
Xem thêm: Hướng dẫn chạy phần mềm Stata cơ bản
2. Lệnh [Merge] – Ghép dữ liệu theo chiều ngang trong stata
Merge – thêm các biến vào tập dữ liệu. Nhập [help merge] trong Stata để biết thêm chi tiết về câu lệnh. Việc hợp nhất hai tập dữ liệu yêu cầu cả hai phải có ít nhất một biến chung (hoặc chuỗi hoặc số). Nếu chuỗi, hãy đảm bảo các danh mục có cùng cách viết (tức là tên quốc gia, mã vùng, tỉnh, ..v.v.) và các biến chung phải có cùng tên (Nếu không chung tên mà cùng giống dữ liệu hãy đổi tên cho trùng nhau bằng lên rename trong Stata nhé!
Đây là những gì bạn cần phải tự hỏi về hai tập dữ liệu mà bạn sắp merge.
- Biến số nhận dạng mà các tệp nên được kết hợp với nhau là gì?
- Mỗi quan sát (hàng) của biến định danh có phải là duy nhất không? Nói cách khác, mỗi giá trị hàng cho biến định danh chỉ xảy ra một lần? Câu trả lời cho câu hỏi này quan trọng đối với cách bạn sẽ hợp nhất hai tập dữ liệu.
- Chúng ta phải lần lượt đánh giá quá trình kết hợp trên như thế nào?
Hợp nhất có thể thực hiện theo các cách như hợp nhất (một-một (1-1), một-nhiều (1-m), nhiều-một (m-1) và nhiều-nhiều (m-m)), thường được gọi là kết hợp. Hợp nhất cũng có thể thực hiện hợp nhất tuần tự, mà không có tương đương trong thế giới cơ sở dữ liệu quan hệ.
2.1. Merge với 1:1
Có 2 bộ Master (Mydata1) và Using data (Mydata2) như trong hình (Bạn muốn cho bộ nào làm master hay using đều được nhé, ở đây Mosl ưu tiên bộ dữ liệu có tổng số liệu lớn hơn)
Nhập đoạn code sau:
- cd “C:\Users\Downloads” (Mở ổ đĩa chưa tập dữ liệu master cần lấy)
- use mydata1, clear (Sử dụng bộ dữ liệu để làm master data)
- merge 1:1 country year using mydata2 (Using data sẽ là mydata2 cùng nằm trong ổ đĩa C như trên)
Stata sẽ tự động hiển thị phân phối tần số của các giá trị của _merge ngay sau lệnh hợp nhất. Đối với ví dụ này, bạn sẽ thấy một cái gì đó xuất hiện như thế này:
Kết quả sau khi merge và dữ liệu trở thành như sau:
Khi bạn thực hiện xong lệnh merge, bạn sẽ nhận thấy rằng một biến mới có tên là _merge đã được tạo ra. Biến này mô tả kết quả của việc hợp nhất, như sau:
- Các quan sát mà _merge == 1 chỉ tồn tại trong tập dữ liệu chính (master data) nhưng không tồn tại trong tập dữ liệu đang sử dụng (using data). Do đó, những quan sát này không được hợp nhất.
- Các quan sát mà _merge == 2 chỉ tồn tại trong tập dữ liệu đang sử dụng (using data) nhưng không tồn tại trong tập dữ liệu chính (master data). Do đó, những quan sát này không được hợp nhất.
- Các quan sát mà _merge == 3 tồn tại trong cả tập dữ liệu sử dụng (using data) và tập dữ liệu chính (master data). Do đó, những quan sát này đã được hợp nhất.
Ở đây _merge cho kết quả matched (3) nên việc hợp nhất đã thành công gộp 2 bộ dữ liệu.
Lưu ý: Sau khi merge xong bạn hãy sử dụng lệnh tabulate _merge và tabulate country year để kiểm tra xem dữ liệu có đầy đủ không nhé! À bạn nhớ sort country year dữ liệu lại cho đẹp và đều nha; Xong thì nhớ save để lưu lại dữ liệu luôn.
2.2. Merge với 1:1
Có 2 bộ Master (Mydata1) và Using data (Mydata3) như trong hình.
Nhập đoạn code sau:
- cd “C:\Users\Downloads” (Mở ổ đĩa chưa tập dữ liệu master cần lấy)
- use mydata1, clear (Sử dụng bộ dữ liệu để làm master data)
- merge 1:1 country year using mydata3
Kết quả sau khi merge và dữ liệu trở thành như sau:
Do lần này không dữ liệu using không có được 4 năm của country C như dữ liệu chính master, nên sau khi merge kết quả trả về _merge == 1 có 4 giá trị master only (1) và _merge==3 (matched(3)) có 8 giá trị hợp nhất thành công.
Lưu ý: Nếu bạn muốn bỏ đi các dữ liệu không hợp nhất được thì hãy sử dụng lệnh keep if _merge==3 hay drop if _merge==1
Sau khi làm xong nhớ phải sử dụng lệnh tab và sort để kiểm tra và sắp xếp dữ liệu cho đẹp nhé!
2.3. Merge với m:1
Có 2 bộ Master (Mydata1) và Using data (Mydata4) như trong hình.
Nhập đoạn code sau: merge m:1 country using mydata4
Kết quả sau khi merge và dữ liệu trở thành như sau:
Ở đây dữ liệu mới đều matched với nhau bạn nên hiểu rằng lệnh m:1 ở đây thì m có nghĩa là nhiều (many) ở đây bạn chỉ phải merge dựa theo biến country vì trong dữ liệu using data không có biến year.
Trong master data bạn thấy biến country A, B, C đều có rất nhiều giá trị và trong using data thì chỉ có 3 giá trị đại diện cho A, B, C, vì vậy đó chính là lý do lệnh m:1 này được sử dụng để merge từ bộ dữ liệu với biến có nhiều giá trị với bộ dữ liệu biến có ít giá trị.
Sau khi làm xong nhớ phải sử dụng lệnh tab và sort để kiểm tra và sắp xếp dữ liệu cho đẹp nhé!
2.4. Merge với 1:m
Có 2 bộ Master data (Mydata5) và Using data (Mydata1) như trong hình.
Nhập đoạn code sau:
- cd “C:\Users\Downloads” (Mở ổ đĩa chưa tập dữ liệu master cần lấy)
- use mydata5,clear (Sử dụng bộ dữ liệu 5 để làm master data)
- merge 1:m country using mydata1
Kết quả sau khi merge và dữ liệu trở thành như sau:
Lệnh 1:m cũng tương tự so với lệnh m:1 chỉ ngược nhau là sẽ lấy từ bộ giữ liệu master data có biến ít giá trị hơn cụ thể là biến country trong mydata5 để hợp nhatas với bộ dữ liệu using data có biến nhiều giá trị hơn là biến country trong mydata1.
Lệnh m:m thì cũng khá tương tự ở đây bạn sẽ nhập dữ liệu có biến giá trị nhiều với dữ liệu cũng có 1 biến có giá trị nhiều như vậy.
Bonus thêm 1 số chú ý trong quá trình thực nghiệm:
- Nếu bạn không muốn Stata tự động tạo ra biến _merge==3 để thể hiện cho việc hợp nhất thì bạn có thể đổi tên bằng cú pháp sau dấu phẩy như sau: merge A using B, gen(Match) hoặc bất cứ tên gì mà bạn muốn đổi.
- Sau dấy phẩy có thể thêm lệnh keep (các biến cần giữ) để sau quá trình merge không bị mất đi
- Sau dấu phẩy có thể thêm lệnh force nếu Stata báo lỗi không thể chạy vì các lý do khác nhau nhé!
Qua 4 ví dụ trên các bạn thấy rất dễ để merge dữ liệu theo nhiều cách khác nhau sao cho phù hợp phải không nào? Dưới đây Mosl sẽ giới thiệu tiếp tục về lệnh Append trong Stata.
3. Lệnh [Append] – Ghép dữ liệu theo chiều ngang trong stata
Append – thêm các trường hợp / quan sát vào tập dữ liệu, bạn hãy nhập lệnh help append để biết chi tiết. Việc nối hai tập dữ liệu thì yêu cầu cả hai đều có các biến có tên giống hệt nhau, nếu chưa giống bạn hãy dùng lệnh rename trong Stata để đổi tên nhé!
Hãy nhớ rằng Stata là phân biệt chữ hoa chữ thường, “Năm” không giống với “năm”. Đối với các biến không khớp, Stata sẽ tự động thêm thành các giá trị còn thiếu.
3.1. Ví dụ 1
Nhập đoạn code sau:
- cd “C:\Users\Downloads” (Mở ổ đĩa chưa tập dữ liệu master cần lấy)
- use mydata7,clear (Sử dụng bộ dữ liệu 7 để làm master data)
- append using mydata8
Kết quả như sau:
Kết quả trả ra tập dữ liệu chưa được xếp gọn nên ta sẽ dùng lệnh sort country year để sắp xếp như hình dưới:
3.2. Ví dụ 2
Nhập đoạn code sau:
- cd “C:\Users\Downloads” (Mở ổ đĩa chưa tập dữ liệu master cần lấy)
- use mydata7,clear (Sử dụng bộ dữ liệu 7 để làm master data)
- append using mydata9
Kết quả như sau:
Kết quả lần này vì master data có biến x3 và using data không có x3 nên kết quả cột x3 trả ra 1 số giá trị missing (.) trong dữ liệu cuối.
4. Tổng kết
MOSL đã cung cấp đến bạn chi tiết 2 lệnh MERGE và APPEND trong Stata, gồm các cách hiểu về lệnh merge là gì? + append là gì? trong Stata hy vọng bạn hiểu và áp dụng trong quá trình nghiên cứu của mình.
Mosl xin chúc các bạn học tập và làm việc hiệu quả!
Xem thêm: Dịch vụ Stata của Mosl.vn
Tham khảo tại website:
https://www.stata.com/manuals/dmerge.pdf
https://libguides.library.nd.edu/data-analysis-stata/merge-append
https://www.princeton.edu/~otorres/Merge101.pdf
[su_box title=”Liên hệ: ” style=”glass” box_color=” #51d7bb “] Hotline: 0707.33.9698 hoặc Mail: sales@mosl.vn | Fanpage: Mentor Of Số Liệu – Mosl.vn . Điền thông tin để nhận tư vấn ngay Tại đây [/su_box]
Tab: Lệnh append trong Stata | Lệnh merge trong Stata | Lệnh merge và append trong Stata | Merge stata | Append là gì | Hướng dẫn sử dụng phần mềm stata 14