我有一个带有这些变量的.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
答案 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 |
+----------------------------------------------+