楼主: QiuQ_16
1306 13

[数据管理求助] 如何仅保留两个变量都重复的第三个变量首次出现的值 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

大专生

51%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
169 点
帖子
18
精华
0
在线时间
83 小时
注册时间
2019-4-21
最后登录
2020-12-6

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现想保留原数据的情况下,将U和S都重复的第一次出现的date提取出来,生成新变量date1
谢谢各位大神啦!!
数据如下图所示:
U                S               date
13740231        18907        null
13740231        34805        20160321
14336199        18907        20160618
14336199        18907        20160618
14336199        18907        20160619
14336199        18907        20160720
14336199        38810        20160126
14336199        38812        20160129
14336199        37005        20160412
14336199        14305        20160127
14336199        18907        20160618
14339879        18907        20160115
14339879        18907        20160127
10539231        12008        20160618



二维码

扫码加我 拉你入群

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

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

关键词:date null ATE 新变量

沙发
震震果实 发表于 2019-11-20 15:18:05 |只看作者 |坛友微信交流群

  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input long(u s) str8 date
  4. 13740231 18907 "null"   
  5. 13740231 34805 "20160321"
  6. 14336199 18907 "20160618"
  7. 14336199 18907 "20160618"
  8. 14336199 18907 "20160619"
  9. 14336199 18907 "20160720"
  10. 14336199 38810 "20160126"
  11. 14336199 38812 "20160129"
  12. 14336199 37005 "20160412"
  13. 14336199 14305 "20160127"
  14. 14336199 18907 "20160618"
  15. 14339879 18907 "20160115"
  16. 14339879 18907 "20160127"
  17. 10539231 12008 "20160618"
  18. end
复制代码

使用道具

藤椅
震震果实 发表于 2019-11-20 15:19:33 |只看作者 |坛友微信交流群
destring date,replace force
bysort u s: gen w= (_N>1)
sort u s date
bysort u s:gen n=_n
gen date1=date if w==1 & n==1

使用道具

板凳
sungmoo 发表于 2019-11-20 15:42:19 |只看作者 |坛友微信交流群
by u s: g date1=date[1]

使用道具

报纸
黃河泉 在职认证  发表于 2019-11-20 17:58:33 |只看作者 |坛友微信交流群
稍微修改 sungmoo 版主之 code:
  1. destring date, replace force
  2. bys u s (date): g long date1=date[1]
复制代码

使用道具

地板
QiuQ_16 发表于 2019-11-21 19:01:11 |只看作者 |坛友微信交流群
震震果实 发表于 2019-11-20 15:18
那如果U S都相同的第一个观测值的date为空值,则需顺位取同U S下,第二个或第三个不为空值的date,这该如何操作呢?

使用道具

7
QiuQ_16 发表于 2019-11-21 19:01:32 |只看作者 |坛友微信交流群
震震果实 发表于 2019-11-20 15:19
destring date,replace force
bysort u s: gen w= (_N>1)
sort u s date
那如果U S都相同的第一个观测值的date为空值,则需顺位取同U S下,第二个或第三个不为空值的date,这该如何操作呢?

使用道具

8
QiuQ_16 发表于 2019-11-21 19:02:36 |只看作者 |坛友微信交流群
sungmoo 发表于 2019-11-20 15:42
by u s: g date1=date[1]
那如果U S都相同的第一个观测值的date为空值,则需顺位取同U S下,第二个或第三个不为空值的date,这该如何操作呢?

使用道具

9
QiuQ_16 发表于 2019-11-21 19:04:58 |只看作者 |坛友微信交流群
黃河泉 发表于 2019-11-20 17:58
稍微修改 sungmoo 版主之 code:
那如果U S都相同的第一个观测值的date为空值,则需顺位取同U S下,第二个或第三个不为空值的date,这该如何操作呢?

使用道具

10
震震果实 发表于 2019-11-21 19:44:44 |只看作者 |坛友微信交流群
QiuQ_16 发表于 2019-11-21 19:01
那如果U S都相同的第一个观测值的date为空值,则需顺位取同U S下,第二个或第三个不为空值的date,这该如 ...
将NULL替换为一个较大的数,比如一个9位数即可,然后运行程序。

使用道具

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

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

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

GMT+8, 2024-5-4 19:16