[英]How to bound time using Stata?
我想限制數據集的TRD_EVENT_TM
變量,即時間值,在9:30到11:00之間。
* Example generated by -dataex-. To install: ssc install dataex
clear
input str8 TRD_EVENT_TM str6 TRD_STCK_CD double TRD_PR long TRD_EVENT_DT
"09:53:17" "BANK1" 909 18293
"10:25:40" "HSHM1" 1706 19205
"11:32:03" "SIPA1" 2231 18866
"11:01:55" "AZAB1" 2283 18916
"12:19:56" "SIPA1" 2063 17683
"10:48:01" "CHML1" 6048 18672
"10:59:49" "DADE1" 3044 18847
"11:40:34" "CHML1" 6406 18798
"10:54:45" "GOLG1" 7583 18544
"11:08:01" "IKCO1" 3942 18743
"10:25:35" "ASIA1" 5248 18511
"09:41:46" "FOLD1" 4910 19406
"11:43:15" "BANK1" 829 18105
end
format %tdD_m_Y TRD_EVENT_DT
我怎樣才能做到這一點?
雖然它是一個字符串變量,但條件inrange(TRD_EVENT, "09:30", "11:00")
應該可以正常工作。 有了你的數據,
. list TRD_EVENT_TM if inrange(TRD_EVENT_TM, "09:30", "11:00") , sep(0)
+----------+
| TRD_EV~M |
|----------|
1. | 09:53:17 |
2. | 10:25:40 |
6. | 10:48:01 |
7. | 10:59:49 |
9. | 10:54:45 |
11. | 10:25:35 |
12. | 09:41:46 |
+----------+
help inrange()
文檔,該函數允許字符串參數。 另請參見https://www.stata-journal.com/sjpdf.html?articlenum=dm0026
另一種方法是使用內置的clock()
函數:
list TRD_EVENT_TM if clock(TRD_EVENT_TM, "hms") >= clock("9:30", "hm") & ///
clock(TRD_EVENT_TM, "hms") <= clock("11:00", "hm")
+----------+
| TRD_EV~M |
|----------|
1. | 09:53:17 |
2. | 10:25:40 |
6. | 10:48:01 |
7. | 10:59:49 |
9. | 10:54:45 |
|----------|
11. | 10:25:35 |
12. | 09:41:46 |
+----------+
因此,如果您想限制變量,您只需創建一個包含相關觀察的新變量:
generate NEW_TRD_EVENT_TM = TRD_EVENT_TM if ///
clock(TRD_EVENT_TM, "hms") >= clock("9:30", "hm") & ///
clock(TRD_EVENT_TM, "hms") <= clock("11:00", "hm")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.