【发布时间】:2023-04-11 03:14:01
【问题描述】:
我想在每个name 中为下一个date 重复drop 变量。
考虑以下数据框:
* Example generated by -dataex-. To install: ssc install dataex
clear
input str4 name long date str8 time float drop
"A" 17659 "11:32:41" 1
"A" 17659 "12:32:41" 1
"A" 17659 "13:32:41" 1
"A" 17660 "11:32:41" .
"A" 17660 "12:32:41" .
"A" 17660 "13:32:41" .
"A" 17660 "14:32:41" .
"B" 17659 "11:32:41" .
"B" 17659 "12:32:41" .
"B" 17659 "13:32:41" .
"B" 17659 "14:32:41" .
"B" 17660 "11:32:41" 1
"B" 17660 "12:32:41" 1
"B" 17661 "11:32:41" 1
"B" 17661 "12:32:41" 1
"C" 17659 "11:32:41" 1
"C" 17659 "12:32:41" 1
"C" 17660 "11:32:41" .
"C" 17660 "12:32:41" .
"C" 17660 "13:32:41" .
"C" 17661 "11:32:41" .
"C" 17661 "12:32:41" .
"C" 17661 "13:32:41" .
"C" 17661 "14:32:41" .
end
format %d date
所以结果是:
+------+-----------+----------+-------+
| name | date | time | drop |
+------+-----------+----------+-------+
| A | 07may2008 | 11:32:41 | 1 |
| A | 07may2008 | 12:32:41 | 1 |
| A | 07may2008 | 13:32:41 | 1 |
| A | 08may2008 | 11:32:41 | 1 |
| A | 08may2008 | 12:32:41 | 1 |
| A | 08may2008 | 13:32:41 | 1 |
| A | 08may2008 | 14:32:41 | 1 |
| B | 07may2008 | 11:32:41 | |
| B | 07may2008 | 12:32:41 | |
| B | 07may2008 | 13:32:41 | |
| B | 07may2008 | 14:32:41 | |
| B | 08may2008 | 11:32:41 | 1 |
| B | 08may2008 | 12:32:41 | 1 |
| B | 09may2008 | 11:32:41 | 1 |
| B | 09may2008 | 12:32:41 | 1 |
| C | 07may2008 | 11:32:41 | 1 |
| C | 07may2008 | 12:32:41 | 1 |
| C | 08may2008 | 11:32:41 | 1 |
| C | 08may2008 | 12:32:41 | 1 |
| C | 08may2008 | 13:32:41 | 1 |
| C | 09may2008 | 11:32:41 | |
| C | 09may2008 | 12:32:41 | |
| C | 09may2008 | 13:32:41 | |
| C | 09may2008 | 14:32:41 | |
+------+-----------+----------+-------+
最后,如果我们使用drop if drop == 1,结果是:
+------+-----------+----------+-------+
| name | date | time | drop |
+------+-----------+----------+-------+
| B | 07may2008 | 11:32:41 | |
| B | 07may2008 | 12:32:41 | |
| B | 07may2008 | 13:32:41 | |
| B | 07may2008 | 14:32:41 | |
| C | 09may2008 | 11:32:41 | |
| C | 09may2008 | 12:32:41 | |
| C | 09may2008 | 13:32:41 | |
| C | 09may2008 | 14:32:41 | |
+------+-----------+----------+-------+
【问题讨论】:
-
到目前为止您尝试过什么?向我们展示您的一些代码。
-
也许我可以使用
gen drop2 = drop[_n-1]为下一个日期创建一个等于 1 的新观察值,然后将其添加到drop变量中以获得该date。 -
您基本上是在寻求一种解决方案来处理您之前帖子中的重复条目。那么您是否只想在下一个日期之后删除所有重复项?
-
没有。我只想删除
drop值等于 1 的观察结果。 -
好吧,那
replace name = . if drop == 1有什么问题?