thongke.info
Đang tải dữ liệu...
Quản lý, phân tích số liệu
Trang chủ  >  Main menu  >  Phương pháp luận  >  Quản lý, phân tích số liệu

Chuyển biến dạng chữ có chứa ngày tháng sang biến dạng ngày tháng trong Stata

Ngày tháng năm (date) là một trong các dạng biến đặc biệt và quan trọng trong quá trình phân tích số liệu, nhất là trong các điều tra dinh dưỡng vì liên quan đến tuổi của bà mẹ, tuổi của trẻ nhỏ. Tuy nhiên trong quá trình thu thập số liệu hay nhập liệu thì biến ngày tháng đã không được định dạng đúng về dạng ngày tháng (date) mà lại ở dạng chữ (string) hay dạng số (numberic) do đó chúng ta không thể tính tuổi của ĐTNC (bà mẹ, trẻ nhỏ) hay những giá trị khác liên quan đến biến ngày tháng được. Phần này thongke.info xin giới thiệu tới các bạn cách để chuyển biến dạng chữ (String variable) có chứa ngày tháng năm sang dạng ngày tháng năm chuẩn (date) trong stata.

Trường hợp 1: Biến ngày tháng dạng chữ (string variable có chứa 4 chữ cho trường năm, ví dụ 2007)

Ví dụ: biến date với format dạng chữ, có chứa số liệu ngày tháng như sau:



Khi chúng ta muốn chuyển biến dạng chữ (string variable) sang biến dạng ngày tháng (date) theo đúng thứ tự như biến ban đầu là ngày/tháng/năm, do file sẽ như sau:

Với stata phiên bản từ 10 trở lên
gen date2 = date(date, "DMY")
format date2 %td

Với stata phiên bản 9

gen date2 = date(date, "dmy")
format date2 %td
Sau khi các bạn chạy lệnh trên, kết quả như sau:


Dạng biến số đã được chuyển từ string thành float, với định dạng %td.

Trường hợp 2: Khi biến ngày tháng được định dạng ở dạng chữ (string variable) với trường năm có 2 số

Ví dụ: biến date với format dạng chữ, có chứa số liệu ngày tháng như sau:


Khi chúng ta muốn chuyển biến dạng chữ (string variable) sang biến dạng ngày tháng (date) theo đúng thứ tự như biến ban đầu là ngày/tháng/năm, do file sẽ như sau:

Với stata phiên bản từ 10 trở lên

gen date3 = date(date, "DM20Y")
format date3 %td 

Với stata phiên bản 9

gen date3 = date(date, "dm20y")
format date3 %td 

Mặc dù biến date trên có bao gồm cả giá trị có đầy đủ 4 số trong trường năm (23/04/2012), tuy nhiên điều này không hề ảnh hưởng do đó lệnh trên vẫn được giữ nguyên, được sử dụng khi tất cả các năm có 2 chữ số thuộc cùng một thế kỷ.

Sau khi các bạn chạy lệnh trên, kết quả như sau:


Dạng biến số đã được chuyển từ string thành float, với định dạng %td.

Note: Với những giá trị năm từ 2000 trở lên (2000, 2001, 2002....) thì các bạn sẽ sử dụng lệnh như trên, tuy nhiên với những giá trị năm từ 1900 đến 1999 thì các bạn sẽ thay thành “dm19y” hoặc “DM20Y” tùy thuộc vào từng phiên bản Stata bạn dùng. Tương tự với các giá trị năm khác như 1800, 1700....

Trường hợp 3: Khi biến ngày tháng được định dạng ở dạng chữ (string variable) với trường năm bao gồm cả 2 chữ số, 4 chữ số và thuộc 2 thế kỷ khác nhau như các năm: 1990, 2000...

Tuy nhiên trường hợp này phụ thuộc rất nhiều vào bộ số liệu của bạn. Ví dụ bạn có số liệu biến date ở dạng chữ như sau:


Khi chúng ta muốn chuyển biến dạng chữ (string variable) sang biến dạng ngày tháng (date) theo đúng thứ tự như biến ban đầu là ngày/tháng/năm, do file sẽ như sau:

Với stata phiên bản từ 10 trở lên

gen date4 = date(date, "DMY", 2012)
format date4 %td 

Với stata phiên bản 9

gen date4 = date(date, "dmy", 2012)
format date4 %td 

Các bạn lưu ý, trong trường hợp này 2012 là số năm lớn nhất có thể xảy ra do đó chúng ta sẽ ghi 2012 ở trọng lệnh như trên. Do đó các bạn sẽ thay 2012 bằng một năm khác sao cho phù hợp với data của bạn.

Kết quả sẽ như sau:


Dạng biến số đã được chuyển từ string thành float, với định dạng %td.

Phần sau, thongke.info sẽ giới thiệu tới các bạn cách chuyển biến ngày tháng (date) ở các dạng rời rạc (ví dụ: biến c1 là ngày, biến d1 là tháng và e1 là năm) thành biến ngày tháng dạng chuẩn (date: ngày/tháng/năm).

Một số thông tin được tham khảo từ UCLA Academic Technology Services.

Nguyễn Thị Linh

Nguyễn Trương Nam - Thongke.info