Giới thiệu lệnh IF
Đôi khi khi chạy dữ liệu ta cần lọc số liệu theo một hoặc một số điều kiện nào đó. Điều này có thể thực hiện với lệnh IF nhé. Phần này cho thấy việc sử dụng if với các lệnh Stata thông dụng
Đầu tiên , file số liệu sử dụng là file có sẵn trong Stata
sysuse auto
Đối với phần này, chúng ta sẽ tập trung vào các biến make, rep78, foreign, mpg và price. Chúng ta có thể sử dụng lệnh keep để chỉ giữ năm biến này.
keep make rep78 foreign mpg price
Lệnh này xóa tất cả các biến khác ra khỏi bộ nhớ, đây là bảng so sánh các biến trước và sau khi sử dụng lệnh keep
Chúng ta hãy lập một bảng về rep78 theo trong nước/nước ngoài để xem xét lịch sử sửa chữa của ô tô nước ngoài và trong nước.
tabulate rep78 foreign
Giả sử chúng ta chỉ muốn tập trung vào những chiếc xe có lịch sử sửa chữa bốn trở lên. Chúng ta có thể sử dụng hậu tố if để làm điều này.
tabulate rep78 foreign if rep78 >=4
Hãy lập bảng trên bằng cách sử dụng các tùy chọn column và nofreq. Lệnh column yêu cầu tỷ lệ phần trăm cột trong khi lệnh nofreq ngăn chặn tần số ô. Lưu ý rằng column và nofreq đứng sau dấu phẩy. Đây là các tùy chọn trên lệnh lập bảng và các tùy chọn cần được đặt sau dấu phẩy.
tabulate rep78 foreign if rep78 >=4, column nofreq
Lệnh IF được sử dụng chung với các lệnh nào?
Việc sử dụng if không bị giới hạn trong lệnh lập bảng tabulate. Ở đây, ta sử dụng nó với lệnh list và nhiều lệnh khác nữa.
list if rep78 >= 4
Bạn có thấy rằng một số quan sát có giá trị là '.' cho rep78? Đây là những giá trị bị thiếu missing value stata. Ví dụ, giá trị của rep78 cho AMC Spirit bị thiếu. Stata coi một giá trị bị thiếu là positive infinity( số dương vô cực), số cao nhất có thể. Vì vậy, khi liệt kê list if rep78> = 4, Stata đã bao gồm các quan sát trong đó rep78 bị missing value.
Nếu chúng ta chỉ muốn bao gồm các quan sát hợp lệ (không bị thiếu missing) lớn hơn hoặc bằng 4, chúng ta có thể làm như sau để cho Stata biết rằng chúng ta chỉ muốn các quan sát trong đó rep78> = 4 và rep78 không bị thiếu.
list if rep78 >= 4 & !missing(rep78)
hoặc câu lệnh tương đương là
list if rep78 >= 4 & rep78 != .
Kết quả ra như sau:
Chúng ta có thể sử dụng if với hầu hết các lệnh Stata. Tại đây, chúng ta nhận được số liệu thống kê tóm tắt về giá của những chiếc xe có lịch sử sửa chữa là 1 hoặc 2. Lưu ý rằng dấu kép bằng (==) đại diện cho IS EQUAL TO và ký tự(|) đại diện cho OR.
summarize price if rep78 == 1 | rep78 == 2
Câu lệnh tương tự là
summarize price if rep78 <= 2
Ngoài ra, chúng ta có thể sử dụng mã này để chỉ định một loạt các giá trị. Đây là bản tóm tắt giá cho các giá trị từ 3 đến 5 trong rep78.
summarize price if inrange(rep78,3,5)
Câu lệnh tương tự ra cùng kết quả ở trên là:
summarize price if rep78 == 3 | rep78 == 4 | rep78 == 5
Tóm tắt cách sử dụng lệnh IF
Hầu hết các lệnh Stata có thể được theo sau bởi if, ví dụ
Thống kê nếu rep78 bằng 2
summarize if rep78 == 2
Thống kê nếu rep78 lớn hơn hoặc bằng 2
summarize if rep78> = 2
Thống kê nếu rep78 lớn hơn 2
summarize if rep78> 2
Thống kê nếu rep78 nhỏ hơn hoặc bằng 2
summarize if rep78 <= 2
Thống kê nếu rep78 nhỏ hơn 2
summarize if rep78 <2
Tổng kết nếu rep78 không bằng 2
summarize if rep78! = 2
Nếu các biểu thức có thể được kết nối với
| hoặc
& và
Giá trị thiếu missing Values
Các giá trị bị thiếu được biểu diễn dưới dạng '.' và là giá trị cao nhất có thể. Do đó, khi các giá trị bị thiếu, hãy cẩn thận với các lệnh như
summarize if rep78> 3
summarize if rep78> = 3
summarize if rep78! = 3
để bỏ qua các giá trị bị thiếu, hãy sử dụng
summarize if rep78> 3 &! missing (rep78)
summarize if rep78> = 3 &! missing (rep78)
summarize if rep78! = 3 &! missing (rep78)
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:
– Facebook facebook.com/hotroStata
– Email hotrostata@gmail.com