Thu gọn dữ liệu bằng lệnh collapse để tính trung bình, tổng, đếm số lượng các quan sát

Đôi khi bạn có các file dữ liệu, và file này cần được thu gọn để phục vụ cho một mục đích nào đó cho bạn. Ví dụ: bạn có thể có dữ liệu học sinh nhưng bạn thực sự muốn dữ liệu lớp học hoặc bạn có thể có dữ liệu hàng tuần nhưng bạn muốn dữ liệu hàng tháng, v.v.

Chúng ta sẽ minh họa điều này bằng cách sử dụng một ví dụ cho thấy cách bạn có thể thu gọn gộp dữ liệu các trẻ em để làm dữ liệu cấp gia đình.Đây là một file chứa thông tin về những đứa trẻ trong ba gia đình. Có một dòng số liệu cho mỗi đứa trẻ.Mỗi gia đình được đại diện bởi biến Family ID, viết tắt là famid. Biến birth là thứ tự được sinh ra trong gia đình sinh (số 1 là sinh trước, 2 là sinh kế tiếp…), age , wt,sex là tuổi, cân nặng và giới tính của đứa trẻ. Chúng ta sẽ sử dụng file này để hiển thị cách thu gọn dữ liệu qua các quan sát.
use https://phantichstata.com/data/kids, clear
 
Như vậy ta có 3 gia đình được định danh bởi famid.
Hãy xem xét lệnh collapse bên dưới. Nó thu gọn tất cả các quan sát để tạo ra một dòng duy nhất với độ tuổi trung bình của trẻ em.
collapse age
 
Từ 6 biến và 9 dòng dữ liệu, bây giờ chỉ còn 1 dòng và 1 biến. Số 5.11 chính là độ tuổi trung bình của 9 trẻ em này. Việc thu gọn ở trên không hữu ích lắm, nhưng bạn có thể kết hợp nó với tùy chọn by(famid), sau đó nó tạo 3 dòng số liệu cho mỗi gia đình chứa độ tuổi trung bình của trẻ em trong mỗi gia đình đó.
clear
use https://phantichstata.com/data/kids, clear
collapse age, by(famid)

 
Như vậy có vẻ hữu ích hơn, vì đã biết được tuổi trung bình trẻ em trong từng gia đình. Lệnh collapse bên dưới thực hiện tương tự như trên, ngoại trừ độ tuổi trung bình được đặt tên là avgage và chúng ta đã nói rõ ràng với lệnh collapse rằng chúng ta muốn nó tính giá trị trung bình.
use https://phantichstata.com/data/kids, clear
collapse (mean) avgage=age, by(famid)

list
 
Chúng ta có thể yêu cầu giá trị trung bình cho nhiều hơn một biến. Ở đây chúng ta lấy giá trị trung bình cho tuổi và cân nặng trong cùng một lệnh.
use https://phantichstata.com/data/kids, clear
collapse (mean) avgage=age avgwt=wt, by(famid)
list

 
Ngoài ra ta có thể tính luôn số con trong 1 gia đình bằng hàm count nhé
use https://phantichstata.com/data/kids, clear
collapse (mean) avgage=age avgwt=wt   (count) socon=age, by(famid)
list

 
Giả sử bạn muốn đếm số con trai và con gái trong gia đình. Chúng ta có thể làm điều đó với một bước bổ sung. Chúng ta sẽ tạo một biến giả là 1 nếu đứa trẻ là con trai (0 nếu không) và một biến giả là 1 nếu đứa trẻ là con gái (và 0 nếu không). Tổng của biến giả bé trai là số bé trai và tổng của biến giả bé gái là số bé gái.
Trước tiên tạo biến giả
use https://phantichstata.com/data/kids, clear
tabulate sex, generate(sexdum)

 
Như vậy có 2 biến dummy là sexdum1 và sexdum2 được tạo ra. Bây giờ sẽ tính tổng của mỗi biến trong mỗi gia đình
collapse (mean) avgage=age avgwt=wt (count) socon=age (sum) contrai=sexdum2 congai=sexdum1, by(famid)
list

 

Bạn cứ trao đổi thêm với nhóm ở đây, hoặc comment bên dưới nhé.

Liên hệ nhóm thạc sĩ Hỗ trợ Stata.

– SMS, Zalo, Viber:

phone number

– Facebook  facebook.com/hotroStata

Email  hotrostata@gmail.com

Comments