Thực hành định dạng dữ liệu ngày
Chuỗi sang định dạng ngày và biến đổi qua lại các tần suất trên Stata
Các dữ liệu sao chép từ internet hoặc nhập (import) từ các dữ liệu CSV hay các nguồn khác vào Stata sẽ được ghi lại ngày dưới dạng biến chuỗi, được hiển thị bằng màu đỏ. Khi thao tác xử lý với các dữ liệu thời gian hoặc dữ liệu bảng thì đầu tiên chúng ta phải khai báo dữ liệu. Vì vậy, rất cần thiết phải chuyển đổi định dạng chuỗi ngày thành định dạng ngày trên Stata. Phần nội dung bên dưới sẽ hướng dẫn thực hiện cách chuyển đổi dữ liệu ngày ở định dạng chuỗi sang định dạng ngày và biến đổi qua lại giữa các tần suất trong kiểu định dạng ngày tháng trên Stata.
Đầu tiên là cách biến đổi dữ liệu dạng chuỗi sang định dạng ngày tháng trên Stata.
Ở bảng bên dưới, cột thứ nhất hiển thị các định dạng ngày với các kiểu hiển thị khác nhau. Cột thứ hai cách thức chuyển chuỗi ngày thành định dạng ngày tương ứng. Cột thứ 3 cho biết kết quả được đọc (hiểu) bởi Stata, bằng cách sử dụng tùy chọn %td trong câu lệnh format, ví dụ, format mydate %td
Chuyển dữ liệu chuỗi về định dạng ngày
Chuỗi nhập | Câu lệnh | Kết quả |
---|---|---|
15-1-2015 | gen mydate=date(text, "DMY") | 15feb2015 |
15/1/2015 | gen mydate=date(text, "DMY") | 15feb2015 |
2015/1/15 | gen mydate=date(text, "YMD") | 15feb2015 |
201502 | gen mydate=date(text, "MY") | 1feb2015 |
1/15/08 | gen mydate=date(text,"MDY",1999) | 15jan1908 |
1/15/08 | gen mydate=date(text,"MDY",2019) | 15jan2008 |
1/15/51 | gen mydate=date(text,"MDY",2000) | 15jan1951 |
1/15/01 | gen mydate=date(text,"MDY",2050) | 15jan2001 |
1/15/00 | gen mydate=date(text,"MDY",2050) | 15jan2000 |
20060125 | gen mydate=date(text, "YMD") | 25jan2006 |
060125 | gen mydate=date(text, "20YMD") | 25jan2006 |
Ví dụ chuyển dữ liệu chuỗi về định dạng ngày
* Nhập dữ liệu mẫu clear input str9 text "15/1/2015" end * Chuyển các biến ngày dạng chuỗi sang dạng ngày trên Stata gen mydate=date(text, "DMY") * Thay đổi định dạng format mydate %td
Chuyển dữ liệu theo ngày về tuần, tháng, quý và năm
Bên cạnh chuyển các ngày ở định dạng chuỗi sang định dạng ngày tháng, thì việc chuyển định dạng ngày sang các tần suất cao hơn như tuần, tháng, quý hoặc năm cũng được sử dụng phổ biến. Bảng sau tổng hợp các câu lệnh để chuyển từ định dạng ngày sang tuần, tháng, quý và năm.
Từ ngày sang | Câu lệnh |
---|---|
Tuần | gen weekly_date = wofd(daily_date) |
Tháng | gen monthly_date = mofd(daily_date) |
Quý | gen qyarterly_date = qofd(daily_date) |
Năm | gen year = year(daily_date) |
Ví dụ chuyển định dạng ngày về tuần/tháng/quý và năm
* Nhập dữ liệu clear input str9 text "15/1/2015" end * Chuyển định dạng chuỗi sang ngày gen daily_date=date(text, "DMY") format daily_date %td * Dữ liệu theo tuần gen weekly_date = wofd(daily_date) format weekly_date %tw * Dữ liệu theo tháng gen monthly_date = mofd(daily_date) format monthly_date %tm * Dữ liệu theo quý gen quarterly_date = qofd(daily_date) format quarterly_date %tq * Dữ liệu theo năm gen year = year(daily_date)
Chuyển qua lại giữa các tần suất
Bạn cũng có thể chuyển đổi qua lại giữa các tần suất của một chuỗi thời gian theo định dạng. Chẳng hạn, bạn có thể chuyển dữ liệu từ tuần sang tháng, tháng sang quý, quý sang năm hoặc ngược lại từ quý sang tháng, quý sang tuần… Bảng bên dưới tổng hợp một số câu lệnh chuyển đổi qua lại giữa các tần suất trong một chuỗi dữ liệu thời gian.
Chuyển từ | Định dạng | Câu lệnh |
---|---|---|
Tuần sang Tháng | 2018w46 | gen monthly_date = dofm(dofw(given_date)) |
Tháng sang Tuần | 2018m11 | gen weekly_date = dofw(dofm(given_date)) |
Quý sang Tháng | 2018q4 | gen monthly_date = dofm(dofq(given_date)) |
Tháng sang Quý | 2018m11 | gen quarterly_date = qofd(dofm(given_date)) |
Tuần sang Quý | 2018w46 | gen quarterly_date = qofd(dofw(given_date)) |
Quý sang Tuần | 2018q4 | gen weekly_date = dofw(dofq(given_date)) |
Chuyển dữ liệu dạng số sang định dạng Stata
Dữ liệu ngày tháng dạng số cũng thường gặp ở các dạng như 20191107, 20190502… Tuy nhiên, Stata không xem đây là định dạng ngày tháng mà là một định dạng số chứ thông thường. Để chuyển định dạng ngày tháng dạng số này về định dạng Stata để khai báo trong các dữ liệu bảng, dữ liệu thời gian thì chúng ta có thể sử dụng lệnh tostring. Câu lệnh tostring này sẽ chuyển dạng số trên thành dạng chuỗi. Sau đó, áp dụng cách chuyển dạng chuỗi thành định dạng Stata đã trình bày ở trên. Bên dưới là minh họa cho trường hợp một chuỗi số theo định dạng YMD (năm, tháng, ngày)
tostring date, gen(datevar) gen date2 = date(datevar, "YMD") format date2 %td
Diễn giải quá trình chuyển dữ liệu số sang dạng ngày tháng trên Stata
- Câu lệnh 1, hàm tostring sẽ tạo một biến datevar dạng chuỗi từ biến date dạng số ban đầu.
- Câu lệnh 2 sử dụng hàm date để tạo một biến ngày date2 theo định dạng từ biến datevar. Thiết lập “YMD” cho biết trật tự của năm tháng ngày trong biến chuỗi datevar.
- Câu lệnh 3 để định dạng biến ngày date2 vừa được tạo để người sử dụng dễ đọc hơn.
Nguồn: https://fintechprofessor.com