Stata:如何选择活动周围的时间间隔?

时间:2017-06-29 16:34:37

标签: time time-series stata

我有一个带有这些变量的.dta文件: 日期,时间,事件,......其他变量......

变量事件假定事件的整个持续时间值= 1,否则假定值=。

.dta文件可能有多个事件。

我希望在事件发生前10分钟和事件发生后10分钟保留事件和时间窗口。

感谢所有

编辑:在图片中有一个数据示例,我想保留事件(当变量事件= 1时),行17467前10分钟和行17471后10分钟,并删除其他观察{{3 }}

数据集示例

input str11 datel str15 timel int a double b int c double time float(hours minutes event)
"23-FEB-2006" "10:14:57.837759"     . 45.04 2 36897837 10 14 .
"23-FEB-2006" "10:14:57.990093"   100     . . 36897990 10 14 .
"23-FEB-2006" "10:14:57.993023"   100     . . 36897993 10 14 .
"23-FEB-2006" "10:14:57.993023"  1800     . . 36897993 10 14 .
"23-FEB-2006" "10:14:58.133639"     . 45.04 1 36898133 10 14 .
"23-FEB-2006" "10:15:01.773054"     . 45.04 1 36901773 10 15 .
"23-FEB-2006" "10:15:01.776960"     . 45.04 1 36901776 10 15 .
"23-FEB-2006" "10:15:02.776896"     . 45.04 3 36902776 10 15 .
"23-FEB-2006" "10:15:07.482650"     . 45.04 5 36907482 10 15 .
"23-FEB-2006" "10:15:07.885944"     . 45.04 3 36907885 10 15 .
"23-FEB-2006" "10:15:09.550877"     . 45.04 7 36909550 10 15 .
"23-FEB-2006" "10:15:22.151906"   100     . . 36922151 10 15 1
"23-FEB-2006" "10:15:22.155812"   100     . . 36922155 10 15 1
"23-FEB-2006" "10:15:22.155812"  1200     . . 36922155 10 15 1
"23-FEB-2006" "10:15:22.155812"   300     . . 36922155 10 15 1
"23-FEB-2006" "10:15:22.155812"   100     . . 36922155 10 15 1
"23-FEB-2006" "10:15:22.642109"   200     . . 36922642 10 15 .
"23-FEB-2006" "10:15:22.832527"   100     . . 36922832 10 15 .
"23-FEB-2006" "10:15:22.990720"     . 45.04 3 36922990 10 15 .
"23-FEB-2006" "10:15:23.311988"     . 45.04 1 36923311 10 15 .
"23-FEB-2006" "10:15:23.319800"     . 45.05 3 36923319 10 15 .
"23-FEB-2006" "10:15:23.331518"     .  45.1 1 36923331 10 15 .
"23-FEB-2006" "10:15:23.335424"     . 45.11 1 36923335 10 15 .
"23-FEB-2006" "10:15:23.335424"     . 45.11 2 36923335 10 15 .
"23-FEB-2006" "10:15:23.336401"     .  45.1 1 36923336 10 15 .
"23-FEB-2006" "10:15:23.336401"     .  45.1 1 36923336 10 15 .
"23-FEB-2006" "10:15:23.336401"     .  45.1 1 36923336 10 15 .
"23-FEB-2006" "10:15:23.336401"     .  45.1 1 36923336 10 15 .
"23-FEB-2006" "10:15:23.336401"     .  45.1 1 36923336 10 15 .

解决方法:Picture_of_data

1 个答案:

答案 0 :(得分:2)

可以使用社区贡献的命令rangestat来做到这一点:

generate double datetime = clock(datel + substr(timel, 1, 12), "DMYhms")
rangestat (count) event, interval(datetime -1000 1000)

drop if event_count == 0
format datetime %tcDDmonCCYY_HH:MM:SS.sss

list datetime event event_count, sepby(event_count) abbreviate(15)

     +----------------------------------------------+
     |               datetime   event   event_count |
     |----------------------------------------------|
  1. | 23feb2006 10:15:22.151       1             5 |
  2. | 23feb2006 10:15:22.155       1             5 |
  3. | 23feb2006 10:15:22.155       1             5 |
  4. | 23feb2006 10:15:22.155       1             5 |
  5. | 23feb2006 10:15:22.155       1             5 |
  6. | 23feb2006 10:15:22.642       .             5 |
  7. | 23feb2006 10:15:22.832       .             5 |
  8. | 23feb2006 10:15:22.990       .             5 |
     +----------------------------------------------+