Phần này cho thấy cách bạn có thể tạo ra dữ liệu con subsetting data trong Stata. Bạn có thể sử dụng tập hợp dữ liệu con bằng cách giữ lại hoặc loại bỏ các biến. Cũng như giữ lại, loại bỏ các quan sát. Bạn cũng có thể sử dụng dữ liệu con khi sử dụng file dữ liệu quá lớn để vừa với bộ nhớ trên máy tính của mình. Ví dụ: bộ số liệu gốc có 500 biến và 1000 quan sát. Bây giờ bạn có thể sử dụng 50 biến và 200 quan sát thôi, vì đó là các số liệu mình cần, không nhất thiết phải sử dụng hết file số liệu gốc. 3 phần chính trong bài như sau:
- Giữ và loại bỏ các biến
- Giữ và loại bỏ các quan sát
- Giữ và loại bỏ các biến và quan sát đồng thời
Giữ và loại bỏ các biến
Đôi khi bạn không muốn tất cả các biến trong một file dữ liệu. Bạn có thể sử dụng các lệnh keep và drop cho các biến.
Lệnh keep
Nếu chúng ta coi dữ liệu của bạn giống như một bảng tính excel, có nghĩa mỗi dòng là 1 quan sát, mỗi cột là một biến. Hãy minh họa điều này bằng file dữ liệu auto.
sysuse auto
Chúng ta có thể sử dụng lệnh describe để xem các biến của nó.
describe
Giả sử chúng ta muốn chỉ có make mpg và price, chúng ta có thể giữ lại các biến đó, như được hiển thị bên dưới.
keep make mpg price
describe
Hãy nhớ rằng điều này không thay đổi file trên đĩa mà chỉ thay đổi bản sao chúng ta có trong bộ nhớ. Nếu chúng ta lưu file này gọi nó là auto, điều đó có nghĩa là chúng ta sẽ thay thế file hiện có (với tất cả các biến) bằng file này chỉ có make, mpg và price. Trên thực tế, chúng ta sẽ mất vĩnh viễn tất cả các biến khác trong file dữ liệu. Điều quan trọng là phải cẩn thận khi sử dụng lệnh lưu sau khi bạn đã loại bỏ các biến và bạn nên lưu các file đó vào một file có tên mới, ví dụ: save auto2.
Lệnh drop
Đây là cách sử dụng lệnh drop để xóa các biến. Trước tiên, hãy xóa dữ liệu trong bộ nhớ và sử dụng file dữ liệu auto.
sysuse auto, clear
Bộ số liệu hiện có tất cả các biến sau: make price mpg rep78 headroom trunk weight length turn foreign
Bây giờ ta xóa hết chừa 2 biến make và price thôi nhé
drop mpg rep78 headroom trunk weight length turn displacement gear_ratio foreign
Giờ bạn nếu muốn lưu bộ số liệu này lại thì chỉ cần gõ lệnh save autonew
Giữ và loại bỏ các quan sát
Ở trên là xóa và giữ biến, còn phần này sẽ là xóa và giữ quan sát các bạn nhé. Xóa quan sát nghĩa là mình xóa các dòng số liệu, ví dụ bạn có 100 dòng thì xóa còn 40 dòng thôi
sysuse auto , clear
Biến rep78 có giá trị từ 1 đến 5, đồng thời cũng có giá trị bị thiếu missing value như sau
tab rep78, missing
Giờ ta muốn xóa các dòng missing thì dùng lệnh này
drop if missing(rep78)
Kết quả hiển thị
(5 observations deleted)
Chứng tỏ có 5 dòng missing đã bị xóa nhé
Giờ nghiên cứu lệnh keep if nhé. Lệnh này sẽ giữ lại những quan sát thỏa điều kiện, ngoài ra sẽ xóa sạch, nên bạn cẩn thận khi sử dụng lệnh này nhé
sysuse auto , clear
keep if (rep78 <= 3)
Ta thấy stata đã xóa các biến có rep78 >3,đồng thời xóa luôn giá trị missing value, do stata quy ước missing value là dương vô cực.
Giữ và loại bỏ các biến và quan sát đồng thời
Bây giờ nếu ta mở file chỉ lấy một số biến, đồng thời chỉ lấy một số quan sát thì làm như thế nào. Các bạn thử câu lệnh sau nhé
clear
use make rep78 using https://phantichstata.com/data/auto if rep78>2
Ý nghĩa: câu lệnh này tạo ra trong bộ nhớ 1 file số liệu chỉ có 2 biến là make và rep78, trong đó giá trị của rep78 đều lớn hơn 2
Vị trí của if và using có thể đổi cho nhau nhé. Câu lệnh trên là tương đương với lệnh này:
clear
use make rep78 if rep78>2 using https://phantichstata.com/data/auto
Lưu ý lệnh sau đây sẽ báo lỗi
clear
use make if rep78>2 using https://phantichstata.com/data/auto
Lỗi:
(1978 Automobile Data)
rep78 not found
r(111);
Lý do là rep78 không phải là một trong những biến được đọc và giữ lại, vì vậy nó không thể được sử dụng trong phần if. Để sử dụng một biến trong phần if, nó phải là một trong những biến được sử dụng giữ lại.
Tổng kết:
Sử dụng keep/drop để giữ/xóa biến
keep make price mpg
drop displ gear_ratio
Sử dụng keep if/drop if để giữ/xóa quan sát theo điều kiện nào đó
drop if missing(rep78)
keep if (rep78 <= 3)
Giữ/xóa biến/quan sát với lệnh use
use make mpg price rep78 using https://phantichstata.com/data/auto
use https://phantichstata.com/data/auto if (rep78 <= 3)
use make mpg price rep78 using https://phantichstata.com/data/auto if (rep78 <= 3)
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