楼主: 虾滑真好吃
362 3

[数据管理求助] 求助!请问如何只删除连在一起的数据? [推广有奖]

  • 0关注
  • 0粉丝

大专生

25%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
465 点
帖子
10
精华
0
在线时间
75 小时
注册时间
2020-3-11
最后登录
2023-8-3

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
大家好,有个数据处理的问题请问大家,具体如下:
前提:我已经按照user_id和request_time进行排序,为某一个user的数据
目前需求:想要把request_time挨在一起的重复出现的sku_id删除只保留一个(比如sku:a864c609d0,在倒数第五行和倒数第四行挨着出现,我只想留下一个,但同时,他也在最后一行和第五航出现,这两个数据是我想保留的)
我已经尝试过duplicates drop user_id sku_id,但是该命令下没有考虑时间时间顺序,比如sku_id为864c609d0的数据,一共出现了3次,用duplicates drop就会只留下一个,因此想请教大家有没有其他方法可以解决?

  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str10(sku_id user_id) str19 request_time double(click_date click_time)
  4. "e99eb7d131" "ffff831061" "2018-03-03 21:36:17" 21246 1835732177000
  5. "43cdf174ae" "ffff831061" "2018-03-03 21:36:33" 21246 1835732193000
  6. "9a128ffc54" "ffff831061" "2018-03-03 21:37:03" 21246 1835732223000
  7. "246e6ef6fe" "ffff831061" "2018-03-03 21:40:05" 21246 1835732405000
  8. "a864c609d0" "ffff831061" "2018-03-03 21:47:53" 21246 1835732873000
  9. "b65c3ea916" "ffff831061" "2018-03-03 21:49:33" 21246 1835732973000
  10. "d1f9cee99b" "ffff831061" "2018-03-14 14:22:56" 21257 1836656576000
  11. "9ac31152dd" "ffff831061" "2018-03-14 14:25:02" 21257 1836656702000
  12. "d1f9cee99b" "ffff831061" "2018-03-22 06:22:27" 21265 1837318947000
  13. "43cdf174ae" "ffff831061" "2018-03-28 07:05:27" 21271 1837839927000
  14. "e99eb7d131" "ffff831061" "2018-03-28 07:05:32" 21271 1837839932000
  15. "fa43f4c1a1" "ffff831061" "2018-03-28 07:05:45" 21271 1837839945000
  16. "a864c609d0" "ffff831061" "2018-03-28 07:06:06" 21271 1837839966000
  17. "a864c609d0" "ffff831061" "2018-03-28 07:06:09" 21271 1837839969000
  18. "a98e4e1eff" "ffff831061" "2018-03-28 07:06:28" 21271 1837839988000
  19. "9a128ffc54" "ffff831061" "2018-03-28 07:06:32" 21271 1837839992000
  20. "a864c609d0" "ffff831061" "2018-03-28 07:06:52" 21271 1837840012000
  21. end
  22. format %td click_date
  23. format %tc click_time
复制代码




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:在一起 duplicates duplicate generated generate

沙发
黃河泉 在职认证  发表于 2022-1-25 09:27:48 |只看作者 |坛友微信交流群
是这样吗?
  1. bys user_id (request_time): gen d = _n
  2. bys sku_id (d): gen d1 = (d==d[_n-1]+1)
  3. drop if d1 == 1
复制代码

使用道具

藤椅
DΘstinyじò 发表于 2022-1-25 13:26:33 |只看作者 |坛友微信交流群
尝试以下代码:
  1. bys user_id sku_id click_date (request_time): drop if _N>1 & _n<_N
复制代码

代码将  同一user_id 下 同一sku_id 同一天出现多次request_time的数据视为连续重复,保留下最后一次的数据。
关键需要界定时间间隔,多长时间间隔的视为连续重复需要删除,同一天,同一个小时,还是同一分钟。间隔确定后然后按需要修改。

使用道具

板凳
虾滑真好吃 发表于 2022-1-25 18:58:59 |只看作者 |坛友微信交流群
DΘstinyじò 发表于 2022-1-25 13:26
尝试以下代码:

代码将  同一user_id 下 同一sku_id 同一天出现多次request_time的数据视为连续重复,保 ...
谢谢您!这个方法可行,非常感谢!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 18:37